Ruby on rails 如何在设计中使用删除方法进行注销?rails路由故障(执行get)
因此,我构建了一个可安装的引擎,并添加了用于身份验证的设计: 出于某种原因,links上的:delete方法正在执行get,这里是相关代码: Index.html.erbRuby on rails 如何在设计中使用删除方法进行注销?rails路由故障(执行get),ruby-on-rails,devise,routing,rails-engines,Ruby On Rails,Devise,Routing,Rails Engines,因此,我构建了一个可安装的引擎,并添加了用于身份验证的设计: 出于某种原因,links上的:delete方法正在执行get,这里是相关代码: Index.html.erb config.sign_out_via = :delete :delete,:class=>'导航栏链接'> Config/initializers/designe.rb config.sign_out_via = :delete 路线 destroy_user_session DELETE /users/sign_out
config.sign_out_via = :delete
:delete,:class=>'导航栏链接'>
Config/initializers/designe.rb
config.sign_out_via = :delete
路线
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
+//= require jquery
+//= require jquery_ujs
+//= require_tree .
错误
No route matches [GET] "/my_engine/users/sign_out"
将config.sign_out_via=:delete
更改为config.sign_via=:get
fix解决了这个问题,允许我注销,但是这是错误的做法注销应该是删除,如果有人有任何想法,我很乐意让它工作
其他信息(Gems+Ruby版本+页面上显示的实际HTML用于注销链接)
我使用的是ruby-1.9.3-p398
这是页面上显示的用于布局链接的html
<a class="navbar-link" data-method="delete" href="/antithetical/users/sign_out" rel="nofollow">Logout</a>
所以我发现引擎(可能只是
--mountable
)不包含jquery来执行:delete
或:post
之类的操作,所以我的修复方法是包含jquery rails
引擎.gemspec
+ s.add_dependency "jquery-rails"
app/assets/javascripts/engine/application.js
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
+//= require jquery
+//= require jquery_ujs
+//= require_tree .
这里也有同样的问题。
我只想补充一点:
#layouts/application.html.haml
@Oskar我不需要engine.rb中的“jquery rails”,就我所知,它应该像rails应用程序一样自动加载?我不需要。也许您在应用程序中使用了
jquery rails
,因此不需要将其加载到引擎中?我的引擎中有一个带有自己web界面的仪表板,而我的主应用程序中只有一个API,所以我没有在那里使用jquery rails。在这种设置中,我需要在引擎中设置jqueryrails
,以便让一切正常工作。