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)

每个事件和活动模型在 DB 中都有一个名为 active 的属性。(布尔值)。并且只想在视图中显示活动的事件和活动。

我的控制器现在看起来像这样。

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

楷模

region has_many cities 
city has_many events, activities  

如何仅显示活动事件,每个循环中的活动?

4

2 回答 2

2

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

于 2012-07-30T10:27:47.480 回答
2

如果您将范围添加到您的EventActivity模型

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

你可以写你的观点,比如

city.events.active.each do |thing|

city.activities.active.each do |activity|
于 2012-07-30T10:33:37.637 回答