我一直在搜索,但没有找到这个 Ruby/Rails 问题的答案。 我有一个rain_admin haml 模式,只要注释掉“渲染部分”行之一,它就可以正常工作。 当两个部分如下所示时,一个部分的提交按钮似乎正在提交另一部分。 Rails 中可以有一个带有 2 个表单的模态吗?
drain_admin.html.haml
= form_for :thing, :url => things_path, :method => :put, :html => {:id => "adoption_form"} do |f|
= f.hidden_field "id"
%fieldset.form-group
= render partial: 'things/free'
.break
= render partial: 'things/rename
/app/views/things/_free.html.haml
= form_for :thing, :url => things_path, :method => :put, :html => {:id => "free_form"} do |f|
= f.hidden_field "id"
= f.hidden_field "user_id", :value => ""
= f.hidden_field "adopted_name", :value => ""
%fieldset.form-group
= f.submit t("buttons.free", :thing => t("defaults.thing")), :class => "btn btn-primary btn-block"
应用程序/视图/事物/_rename.html.haml
= form_for :thing, :url => things_path, :method => :put, :html => {:id => "adoption_form"} do |f|
= f.hidden_field "id"
= f.hidden_field "user_id", :value => @thing.user_id
%fieldset.form-group
= f.label "name", "Rename this drain", :class => "control-label"
= f.text_field "adopted_name", :value => @thing.display_name.titleize, :class => "form-control"
%fieldset.form-group
= f.submit "Rename", :class => "btn btn-primary btn-block"
我希望每个部分都能独立工作。 看来他们互相干扰了。
这与 Rails 无关。您不能在 HTML 中嵌套 form elements。
允许的内容是:
流动内容,但不包含
元素<form>
由于这是无效的 HTML,浏览器中的行为将非常不一致。每个输入都有一个
form
属性,该属性可以是外部形式,也可以是内部形式,具体取决于浏览器是否选择忽略无效的 <form>
标签。