我刚刚将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',并出现完全相同的问题。我想我一定做错了什么?
答案 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