Ruby Rails 3.1,designe签出方法不适用于等于designe_的命名空间
在my Rails应用程序中,有以下routes.rb:Ruby Rails 3.1,designe签出方法不适用于等于designe_的命名空间,ruby,ruby-on-rails-3,devise,Ruby,Ruby On Rails 3,Devise,在my Rails应用程序中,有以下routes.rb: devise_for :admin namespace :admin do root :to => 'dashboard#index' resources :customers end devise_for :admin, :sign_out_via => [ :get ] namespace :admin do root :to => 'dashboard#index'
devise_for :admin
namespace :admin do
root :to => 'dashboard#index'
resources :customers
end
devise_for :admin, :sign_out_via => [ :get ]
namespace :admin do
root :to => 'dashboard#index'
resources :customers
end
如果尝试使用链接“注销到('logout',销毁\u admin\u session\u path,:method=>:delete)”注销,但是
rails打印“没有与[GET]匹配的路由”/admin/sign\u
是否可以在不更改路由的情况下修复路由?由于您请求删除并获得了一个GET,因此
:method
选项似乎不起作用。确保布局中有
您也可以阅读关于同一问题的此问题:已通过为注销操作设置GET method(获取方法)解决,虽然不太安全,但可以正常工作。 如果任何人有相同的问题,这就是新路线。rb:
devise_for :admin
namespace :admin do
root :to => 'dashboard#index'
resources :customers
end
devise_for :admin, :sign_out_via => [ :get ]
namespace :admin do
root :to => 'dashboard#index'
resources :customers
end
如果有人有更安全的补丁,欢迎使用我知道这是一篇老文章,但我有同样的问题(不是使用Desive,而是一个自定义解决方案) 对我来说,在我的应用程序布局中(名为admin.html.erb,因为我有一个像你一样的管理员名称空间),我必须包含以下行,才能使用delete而不是get
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
true%>
重要的是第一部分,我认为turbolinks根本帮不上这个错误。检查application.html.erb文件的head部分是否有此代码,如果没有,请添加。对我有用
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
已通过更改“设计:管理员”中的“设计:管理员”行:通过=>[:获取]注销”解决问题PS:yep,默认javascript包括