沒有路由匹配“/ users / sign_out”設計rails 3我在我的應用程序上安裝了devise并在我的application.html.erb文件中應用了以下內容:<div id="user_nav">
<% if user_signed_in? %>
Signed in as <%= current_user.email %>. This cannot be cheese?
<%= link_to 'Sign out', destroy_user_session_path %>
<% else %>
<%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
<% end %></div>我跑了rake routes并確認所有路線都有效。另外,在我的routes.rb文件中我有devise_for :users和root :to => "home#index"。單擊“注銷”鏈接時出現以下路由錯誤:No route matches "/users/sign_out"是什么導致錯誤?
3 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
我認為退出的路線是一種DELETE
方法。這意味著您的退出鏈接需要如下所示:
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
你的不包括這:method => :delete
部分。此外,請注意,要使其工作,您還必須包含<%= javascript_include_tag :defaults %>
在您的布局文件(application.html.erb
)中。

UYOU
TA貢獻1878條經驗 獲得超4個贊
我在devise.rb中更改了這一行:
config.sign_out_via = :delete
至
config.sign_out_via = :get
它開始為我工作。

湖上湖
TA貢獻2003條經驗 獲得超2個贊
您可能沒有包含jquery_ujs javascript文件。確保您使用的是最新版本的jquery-ujs:https://github.com/rails/jquery-ujs以及可用的最新文件:
rails generate jquery:install
你應該不會有任何更多的rails.js文件。如果你這樣做,你可能已經過時了。確保此文件在config / application.rb中加載了默認值
config.action_view.javascript_expansions[:defaults] = %w(jquery.min jquery_ujs)
(同樣,你應該不會有rails.js這里提交)。最后,添加Devise wiki(haml-style)中記錄的鏈接:
= link_to('Logout', destroy_user_session_path, :method => 'delete')
一切都會好起來的。
- 3 回答
- 0 關注
- 618 瀏覽
添加回答
舉報
0/150
提交
取消