在 Rails 3.2.3 中使用设计 - 无法退出
Posted
技术标签:
【中文标题】在 Rails 3.2.3 中使用设计 - 无法退出【英文标题】:Using Devise in Rails 3.2.3 - Cannot sign out 【发布时间】:2012-06-18 03:27:42 【问题描述】:我正在为我的 rails 应用程序 3.2.3 使用 devise 2.1.0。这是我所做的:
Add gem 'devise' to Gemfile and run bundle
Run rails g devise:install
Run rails g devise User
Setup db by running rake db:migrate
application.html.erb 是这样的:
<%if user_signed_in? %>
Welcome <%= current_user.email%>
<%= link_to "Sign out", destroy_user_session_path%>
<% else %>
<%= link_to "Sign up", new_user_registration_path %> or
<%= link_to "Sign in", new_user_session_path %>
<% end %>
登录和注册工作正常,但是当我点击退出时,我收到一条错误消息:
路由错误
没有路由匹配 [GET] "/users/sign_out" 尝试运行 rake 路由 有关可用路线的更多信息。
这是 rake 路由的输出:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
我真的很困惑,因为那里有 /usrs/sign_out 路线。有谁知道为什么?
【问题讨论】:
【参考方案1】:试试这个:
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
【讨论】:
很遗憾看到有效答案未被接受。投票让你至少得到一些分数。以上是关于在 Rails 3.2.3 中使用设计 - 无法退出的主要内容,如果未能解决你的问题,请参考以下文章
错误:无法构建 gem 本机扩展(rails 3.2.3 上的 mysql2)
使用 will_paginate gem 在 Rails 3.2.3 中调用 Ajax
Rails 3.2.3 GeoLocation 使用 MaxMind