如何创建集合选择链接

时间:2013-08-17 18:48:27

标签: jquery ruby-on-rails

假设我有一个应用程序,列出了世界各地不同城市的不同俱乐部。在clubs_controller.rb的索引操作中,除非提供城市参数,否则我将返回所有俱乐部

def index
   if params[:city] 
        @clubs = Club.where(:city_id => params[:city])    
   else
        @clubs = Club.all
    end 

end

为了实现这一目标,我想创建一个动态集合选择链接,用户可以在其中选择城市。现在,我正在这样做,但这是为每个城市创建一个链接,这不是我想要的。

 <% City.all.each do |city| %>
    <%= link_to city.name, clubs_path(:city => city) %>
 <% end %>

有没有办法创建一个链接,我根据所选的城市链接更改?

与此博客相关的一个SO答案解释了如何使用jquery http://marcgrabanski.com/articles/jquery-select-list-values来解决这个问题,但该页面现已被删除。

1 个答案:

答案 0 :(得分:1)

您可以在链接中传递这样的参数。

<%=  link_to city.name, {:controller => "clubs", :action => "index", :city => city.id} %>

<强>更新 您可以将表单提交到索引页面。

<%= form_tag clubs_path, :method => 'get' do  %>
  <%=  select_tag :city_id, options_for_select(City.all.collect{ |c| [c.name, c.id] })  %>
<%= submit_tag "Get Clubs", :name => nil %>

同样在您的控制器中,您可以检查param city_id。