【问题标题】:form_tag url_for with :method "delete", id and :remote => trueform_tag url_for 带有 :method "delete"、id 和 :remote => true
【发布时间】:2011-12-05 21:24:47
【问题描述】:

我有以下form_tag 工作:

<%= form_tag url_for(:controller => "profiles", :action => "remove_academic", :method => :delete), :id => "remove_major_goal", :remote => true do %>

但是,生成的 HTML 显示 :method => "delete" 不起作用。所以我在form_tag 上找到了几个answers 并尝试了这个:

<%= form_tag url_for({ :controller => "profiles", :action => "remove_academic", :method => "delete" }, { :id => "remove_major_goal", :remote => true }) do %>

但是,这会引发错误。我做错了什么?

【问题讨论】:

    标签: ruby-on-rails-3 form-helpers


    【解决方案1】:

    DELETE 不是 HTML 表单元素的方法属性的有效值。您最好在表单中插入&lt;input type="hidden" name="method" value="delete" /&gt;(或使用辅助方法)。

    更新:

    尝试以下方法之一:

    form_for url_for(:controller => "", :action => ""), :method => "delete", …
    
    form_for { :controller => "", :action => "" }, { :method => "delete", … }
    

    第二种形式的第二组大括号可能是不必要的。同样,第一种形式可能需要它们。

    【讨论】:

    • 文档中提到"delete":提交表单时使用的方法,通常是“get”或“post”。如果使用“put”、“delete”或其他动词,则会添加一个名为 _method 的隐藏输入,以模拟 post 上的动词。 api.rubyonrails.org/classes/ActionView/Helpers/…
    • 是的,您对方法选项是正确的。编辑原始答案以包含方法调用的更正版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多