【问题标题】:Rails form does POST instead of DELETE after adding in Bootstrap?在添加 Bootstrap 后,Rails 表单执行 POST 而不是 DELETE?
【发布时间】:2016-02-24 19:37:26
【问题描述】:

我最近刚刚使用以下代码行添加了对表格列进行排序的功能:

<table data-toggle="table" class= "table">
.  
.
.
<th data-sortable = "true"> Some header column </th>
.
.
<%= form_tag(sccm_destroy_multiple, method: :delete) %>
 .
 .
 .
 <%end%>

所以在我添加了data-toggle="table" 和data-sortable="true" 行之后(在我添加这些行之前工作正常),我的表单开始发出 POST 请求而不是 DELETE,关于如何解决这个问题的任何想法?

还有:

application.js:

//= require bootstrap-table

【问题讨论】:

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


    【解决方案1】:

    你能发布从页面生成的 HTML 表单吗?

    根据the docs,您应该有以下隐藏字段。你看到那个字段了吗?

    <form accept-charset="UTF-8" action="/sccm_destroy_multiple" method="post">
      <input name="_method" type="hidden" value="delete" />
    

    Rails 框架鼓励应用程序的 RESTful 设计,这意味着您将发出大量“PATCH”和“DELETE”请求(除了“GET”和“POST”)。但是,大多数浏览器在提交表单时不支持“GET”和“POST”以外的方法。

    Rails 通过使用名为“_method”的隐藏输入在 POST 上模拟其他方法来解决此问题,该输入设置为反映所需的方法:

    【讨论】:

    • 我看到您发布的第一行,但没有看到第二行....很奇怪,因为它在引导插件之前就可以工作
    • 是的,这很奇怪,但一切都是可调试的。我搜索了他们的问题,没有发现任何关于表单方法或delete 的问题。尝试他们的建议,如果不成功,请提交错误。 bootstrap-table debugging
    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2013-02-25
    • 2012-12-02
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多