我从Rails收到一条错误消息,指出找不到ID为#sign;'的用户。当我尝试注销用户会话时出现错误。应用程序正在查看GET路由而不是我希望它的DELETE路由。
我查看了其他类似错误的帖子,他们认为路线配置不正确。但我似乎无法弄清楚我的应用程序正在发生什么。我尝试了几件事:
这些选项似乎都不适合我。
以下是我的相关文件:
的routes.rb
Rails.application.routes.draw do
root to: 'welcome#index'
devise_for :users
resources :users, only: [:index,:show]
resources :images, only: [:index, :show, :update]
resources :challenges
end
我也尝试过嵌套并直接调用路径:
devise_for :users do
get '/users/sign_out' => 'devise/sessions#destroy'
end
resources :users, only: [:index,:show]
我的注销链接:
%li= link_to "Logout", destroy_user_session_path, :method => :delete
运行佣金路线(相关路线):
Prefix Verb URI Pattern Controller#Action
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
users GET /users(.:format) users#index
使用"退出"链接收到此错误:
Couldn't find User with 'id'=sign_out
和与请求相关的参数是:
Request
Parameters:
{"id"=>"sign_out"}
无论出于何种原因,该链接仍会生成GET请求:
Started GET "/users/sign_out" for ::1 at 2015-12-25 03:35:11 -0600
Processing by UsersController#show as HTML
Parameters: {"id"=>"sign_out"}
有没有人对接下来要改变/尝试什么有什么建议?如果您需要来自任何其他文件的更多信息,请与我们联系。
答案 0 :(得分:1)
我的application.js文件需要默认评论:
//= require jquery
//= require jquery_ujs
我的layouts / application.haml文件需要CSRF元标记:
= csrf_meta_tags
感谢sevenseacat让我指向正确的方向!