以形式携带params

时间:2010-10-12 21:31:14

标签: ruby-on-rails

假设我的主页上有一个学生表,其中包含国家/地区,姓名,年龄列。 假设我想要一个允许用户按国家/地区过滤学生的下拉框,以及一个允许用户搜索具有特定姓名的学生的搜索框。

我知道如何创建国家/地区下拉过滤器:

<% form_tag('/students', :method => :get) do %>
  <%= collection_select(:country, :id, Country.all, :id, :name, :include_blank => true) %>
  <%= submit_tag 'Filter by Country' %>
<% end %>

我知道如何创建名称搜索过滤器:

<form name="sform" id="sform" action="" style="display:inline;">
  <label>
    Search names:
  </label>
  <%= text_field_tag("name", params['name'], :size => 10 ) %>
  <%= submit_tag("Go") %>
</form>

但是,如果我想按国家/地区进行过滤,然后仅在该国家/地区内搜索名称,该怎么办?我在URL中传递了所有参数,但我不知道如何确保任何现有的参数在表单中传递。

[一般来说,我上面使用的表单有点hacky,因为我不太了解Rails表单,所以也欢迎提出改进它们的建议。]

1 个答案:

答案 0 :(得分:0)

认真考虑转储searchlogic的所有本地代码。它可以处理您在这里要求的所有内容,并极大地简化了视图和控制器代码。