3

为标题中的混乱道歉,但这正是它听起来的样子。我有一个由 devise 生成的路由作为 destroy_administrator_session 但每次我链接到它时,它都会将我带到该模型的 show 方法,该模型不存在。

模型名称是管理员,这里是路线

destroy_administrator_session DELETE /administrators/sign_out(.:format)        devise/sessions#destroy

我的哈姆尔电话

= link_to('signout', destroy_administrator_session_path)
= link_to ('Logout', destroy_administrator_session_path), :method=>'delete'
= link_to 'Sign out', destroy_administrator_session_path, :method=>'delete'

每一个都略有不同,但它们都将应用程序带回了我尚未实现的管理员显示方法。正如您从上面的设计路线中看到的那样,show 从未被触及。

最后是我的 routes.rb 文件

  get "/administrators/sign_out" => "devise/sessions#destroy", :as => :destroy_administrator_session
  devise_for :administrators
  resources :administrators

我对可能发生的事情有一些预感。

  1. 路线定义不正确
  2. 我需要指定实际设计路线上发生的情况,并且需要更多配置
  3. 我的资源正在发生冲突,但是删除它们无济于事。

任何帮助表示赞赏

4

2 回答 2

1

尝试这个

devise_for :administrators do
  delete "/administrators/sign_out" => "devise/sessions#destroy", :as => :destroy_administrator_session
end
于 2012-06-25T12:41:31.043 回答
0

仍然不知道发生了什么或为什么这会做出改变,但希望它会一路帮助某人

  devise_scope :administrator do
    get "/administrators/sign_out" => "devise/sessions#destroy", :as => :destroy_administrator_session
    devise_for :administrators
  end
  resources :administrators
于 2012-06-25T09:50:09.437 回答