在<tr> </ tr>标记中的Rails form_tag

etl*_*lds 1 ruby-on-rails erb

我在表格的最后一行有一个form_tag

<tr>
  <%= form_tag(emails_path, method: :post) do %>
    <td><%= text_field_tag 'email', nil, class: "form-control" %></td>
    <td><%= submit_tag "add", class: "btn btn-small btn-success" %></td>
  <% end %>
</tr>
Run Code Online (Sandbox Code Playgroud)

它呈现以下内容

<tr>
  <form accept-charset="UTF-8" action="/emails" method="post"></form> <!-- Close here -->
  <td><input class="form-control" id="email" name="email" type="text"></td>
  <td><input class="btn btn-small btn-success" name="commit" type="submit" value="add"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

"添加"按钮无法正常工作,因为表单标签未将输入控件包装在其中.

但是,当我试图从表格中取出这样的表格时

  <%= form_tag(emails_path, method: :post) do %>
    <p><%= text_field_tag 'email', nil, class: "form-control" %></p>
    <p><%= submit_tag "add", class: "btn btn-small btn-success" %></p>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

表单正确呈现,"添加"按钮有效.

我该怎么做?我记得曾经工作过....

mea*_*gar 6

你不能这样做.

您的表单标记不能存在,插入表的标记.它必须进入一个<td>.您正在生成无效标记,浏览器会尽可能地解释它.

您应该使用第二个选项,带有<p>标签,或者重新考虑是否需要使表单跨越多个表格单元格,或者将整个表格包装在一个表格中<form>.