0

假设我有一个应用程序,列出了世界各地不同城市的不同俱乐部。在 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但该页面现已被删除。

4

1 回答 1

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 %>

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

于 2013-08-17T19:28:07.227 回答