Rails - 无法弄清楚如何写表单

时间:2014-01-28 18:57:18

标签: ruby-on-rails forms ruby-on-rails-4

我想将搜索文本框作为一堆表列的标题。我怎么写这个?

到目前为止,我已经设法让它在没有表格标题中的text_fields的情况下工作。

<%= form_tag contacts_path, :method => 'get' do %>
  <%= text_field_tag :email_address, params[:email_address]  %>
  <%= text_field_tag :first_name, params[:first_name]  %>
  <%= text_field_tag :last_name, params[:last_name]  %>
  <%= submit_tag "Search", :name => nil %>
<% end %>

<table>
  <thead>
    <tr>
      <th><%= text_field_tag :email_address, nil, placeholder: "email address ..."  %></th>
      <th><%= text_field_tag :first_name, nil, placeholder: "first name ..."  %></th>
      <th><%= text_field_tag :last_name, nil, placeholder: "last name ..."  %></th>
    </tr>
  </thead>
  <% end %>
  <tbody>
    <% @contacts.each do |contact| %>
    <tr>
      <td><%= link_to contact.email_address.to_s, edit_contact_path(contact) %></td>
      <td><%= contact.first_name %></td>
      <td><%= contact.last_name %></td>
    </tr>
    <% end %>
  </tbody>
</table>

现在我的功能正常运行,但这不是我想要的方式。我希望标题中的每个文本字段都执行顶部表单中的文本字段。有一个简单的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您的文字字段未包含在表单中。它们必须存在于中间的某个地方:

<%= form_tag contacts_path, :method => 'get' do %>
  # ... All form elements must be within your form ... in here!
<% end %>

如果它们存在于表格之外,则不会随表格一起提交给您的申请表。

只需将表格移到表单中,然后将字段放在需要的地方,一切都应该有效。