gpt4 book ai didi

ruby-on-rails - rails/设计 : Couldn't find User with 'id' =sign_out

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:24 27 4
gpt4 key购买 nike

我从 Rails 收到一条错误消息,指出它找不到 ID 为“sign_out”的用户。当我尝试注销用户 session 时出现错误。应用程序正在查看 GET 路由,而不是我希望它查看的 DELETE 路由。

我查看了其他有类似错误的帖子,他们建议路由配置不正确。但我似乎无法弄清楚我的应用程序发生了什么。我已经尝试了几件事:

  • 切换设计路线和用户资源的顺序
  • 显式调用删除方法
  • 注销链接的方法/破坏路径的各种组合

这些选项似乎都不适合我。

这是我的相关文件:

路线.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

运行rake路线(相关路线):

                  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"}

有人对接下来要更改/尝试的内容有任何建议吗?如果您需要任何其他文件的更多信息,请告诉我。

最佳答案

  1. 我的 application.js 文件需要默认注释:

    //=需要jquery

    //=需要jquery_ujs

  2. 我的 layouts/application.haml 文件需要 CSRF 元标记:

    = csrf_meta_tags

感谢 sevenseacat 为我指明了正确的方向!

关于ruby-on-rails - rails/设计 : Couldn't find User with 'id' =sign_out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34461795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com