2012-07-30 27 views
0

這是我的循環。在我的區域我頁顯示所有與有活動,活動等僅顯示每個循環中的活動(布爾)項目

- @cities.each do |city| 
    %li 
    %h4.h6.icon_mappoint 
     = link_to city.name, region_city_path(@region, city) 
     %ul 
     - city.events.each do |thing| 
     %li 
      = link_to event.name, region_city_event_path(@region, city, event) 
     %ul 
     - city.activities.each do |activity| 
     %li 
     = link_to activity.name, region_city_activity_path(@region, city, activity) 

每個事件和活動模式已經在一個數據庫中的屬性稱爲活躍的城市。 (布爾)。並且只想顯示視圖中的活動事件和活動。

我的控制器現在看起來像這樣。

def show 
    @region = Region.find(params[:id]) 
    @cities = @region.cities 
end 

模型

region has_many cities 
city has_many events, activities 

我怎麼能只顯示活動的事件,活動,在每個循環?

回答

2

如果您添加一個範圍,你EventActivity模型

scope :active, where(:active => true) 

你可以寫你的意見一樣

city.events.active.each do |thing| 

city.activities.active.each do |activity| 
+0

謝謝你還知道我如何將活動事件和活動結合在一個變量中,如@events_activities? – Remco 2012-07-30 10:45:16

2

而不是city.events.each使用city.events.select { |x| x.active }.each

+0

感謝。你也知道我可以如何將活動事件和活動結合在一個循環中。通過示例將每個城市的所有活動項目存儲在@active_items中? – Remco 2012-07-30 10:42:41