Ruby on rails 如何在设计中使用删除方法进行注销?rails路由故障(执行get)

Ruby 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

因此,我构建了一个可安装的引擎,并添加了用于身份验证的设计:

出于某种原因,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(.: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
,以便让一切正常工作。