【发布时间】:2013-08-22 22:49:39
【问题描述】:
我刚刚在我的应用程序上安装了 Devise,我以前像 Michael Hartl 教程一样从头开始。
目前我可以注册和注销。但是当我登录时它给出了一个错误:
No route matches [POST] "/sessions/user"
当我在有或没有(正确)密码的情况下单击登录/登录按钮时会发生这种情况。
我的路线文件是:
SampleApp::Application.routes.draw do
devise_for :users, path_names: { sign_in: "login", sign_out: "logout"}
resources :users do
resources :bookings, only: [:show]
end
resources :bookings
resources :sessions
# match '/signup', to: 'devise/registrations#new', via: :get
# match '/signin', to: 'devise/sessions#new', via: [:post, :get]
# match '/signout', to: 'devise/sessions#destroy', via: :delete
match '/admin', to: 'admin#new', via: :get
match "bookings/new", to: 'bookings#new', via: [:post, :get]
devise_scope :user do
root to: 'static_pages#home'
end
[编辑]
我的表单是 devise 的默认表单:
<h2>Sign in</h2>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email, :autofocus => true %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %>
<%= f.label :remember_me %></div>
<% end -%>
<div><%= f.submit "Sign in" %></div>
<% end %>
目前我在 Session Controller 和 Helper 上没有任何代码,例如 Michael Hartl 教程中的代码
我关于 Sessions 的 rake 路线如下:
sessions GET /sessions(.:format) sessions#index
POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
edit_session GET /sessions/:id/edit(.:format) sessions#edit
session GET /sessions/:id(.:format) sessions#show
PATCH /sessions/:id(.:format) sessions#update
PUT /sessions/:id(.:format) sessions#update
DELETE /sessions/:id(.:format) sessions#destroy
[已解决]
我更新了路由文件
devise_scope :user do
root to: 'static_pages#home'
match '/sessions/user', to: 'devise/sessions#create', via: :post
end
【问题讨论】:
-
我可以看看你的表单和对应的控制器方法吗?
-
我刚刚编辑了文件以包含表单,但它是设计的默认表单。我的会话控制器目前没有任何代码
-
@TiagoOrnelasVieira 很高兴您能够解决您的问题。如果您可以接受给您答案的解决方案,或者提交您自己找到的答案并给它检查,这将有助于那些查看您的问题的人。如果您真的不知道如何解释您的解决方案为何有效,请询问我们,也许有人会解释您的解决方案为何解决了您的问题。一旦你或某人完全回答了这个问题,请给它打勾,这样它就会被关闭,这样 Stack Overflow 就会保持整洁和简洁。谢谢。
标签: ruby-on-rails devise ruby-on-rails-4