2013-08-17 22 views
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 %> 

有沒有辦法創建一個鏈接,我根據所選城市鏈接變化?

之一,所以答案鏈接到該博客解釋瞭如何使用jQuery http://marcgrabanski.com/articles/jquery-select-list-values做,但現在的頁面已經被撤下。

+0

我沒有得到你的要求。 你的意思是,在一個形式,你想要的用戶應該選擇一個城市,根據城市選擇了這個城市所有的俱樂部在另一座城市選擇下拉都可用。 – Bot

+0

或者你想要的鏈接,所有的城市和點擊一個城市,用戶被引導到顯示該城市的所有俱樂部會所的索引頁? – Bot

+0

而不是10個具有10個城市名稱的鏈接,我想要一個鏈接和選項來選擇不同的城市。如果用戶選擇紐約,那麼通過的參數將用於紐約的ID <%= link_to'紐約',clubs_path(:city => new_york_id)%> – BrainLikeADullPencil

回答

1

你可以通過這樣的PARAMS中的鏈接。

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

+0

這不是我想要的。謝謝嘗試。 – BrainLikeADullPencil

+0

非常感謝。您提供的更新是我正在尋找的。 – BrainLikeADullPencil