Rails form_for方法不响应 html 选项



我有一个活动模型模型,我想使用它form_for。

form_for(@item, url: (params[:action] == 'edit' ? api_item_path(datasheet_id: params[:datasheet_id], item_id: params[:item_id]) : api_items_path), html: {method: (params[:action] == 'edit' ? 'patch' : 'post')}) do |f|

我以这种方式选择 url 是因为命名路径前面有"api_"。(可能有一个很好的解决方法,但我希望这不是我问题的一部分)。

问题是带有方法键的html选项不会影响表单的方法(始终为"post")。

模型respond_to?:p,因此ActionView正确地命名了表单(id="edit_item_xxx",class="edit_item"),但尽管如此,该方法仍然是post。

我希望我缺少一些明显的东西。

以下是我用于信息的来源:https://github.com/rails/rails/blob/master/actionview/lib/action_view/helpers/form_helper.rbhttp://guides.rubyonrails.org/form_helpers.html

method 参数应该在html选项哈希之外:

form_for(@item, url: (...), method: (...), html: {}) do |f|

我鼓励您编写帮助程序或自定义表单构建器对象。这里的视图有很多事情要做,很容易犯错误,很难测试。

相关内容

  • 没有找到相关文章

最新更新