Rails删除不在twitter bootstrap下拉列表中工作(2.1.0)

时间:2012-08-25 09:53:20

标签: jquery ruby-on-rails twitter-bootstrap

我刚刚将gem less-rails-bootstrap升级为使用twitter bootstrap 2.1.0,它似乎在我的视图中打破了这个代码,在一个bootstrap下拉列表中:

<%= link_to 'Logout', destroy_admin_user_session_path, :method => :delete %>

服务器似乎认为这是一个GET请求而不是DELETE。但是,如果我将该视图代码放在下拉列表之外,那么它的工作正常,服务器会识别DELETE请求。

如果我改变我的gemfile:

gem 'less-rails-bootstrap', '~> 2.0.4'

然后运行'bundle update'并重新启动服务器,然后一切都按预期再次运行。但如果我只是:

gem 'less-rails-bootstrap'

然后运行'bundle update'并重新启动服务器,然后服务器认为DELETE是GET请求。

我尝试切换到gem'trip-bootstrap-rails',并出现完全相同的问题。我想我一定做错了什么?

2 个答案:

答案 0 :(得分:6)

是的,这是一个Twitter Bootstrap问题。可能会在下一个版本中修复。在这里,试试这个快速修复:

$('body')
  .off('click.dropdown touchstart.dropdown.data-api', '.dropdown')
  .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() });

答案 1 :(得分:2)

显然其他人也有同样的问题:https://github.com/twitter/bootstrap/issues/4688

现在设计的快速解决办法似乎是将devise.rb更改为包括:

config.sign_out_via = :get