这是我的循环。在我的地区页面上,我展示了所有有活动,活动等的城市
- @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)
每个事件和活动模型在数据库中都有一个名为active的属性。 (布尔)。并且只想在视图中显示活动事件和活动。
我的控制器现在看起来像这样。
def show
@region = Region.find(params[:id])
@cities = @region.cities
end
模型
region has_many cities
city has_many events, activities
如何只显示每个循环中的活动事件和活动?
答案 0 :(得分:2)
而不是city.events.each
使用city.events.select { |x| x.active }.each
。
答案 1 :(得分:2)
如果您向Event
和Activity
型号添加了范围
scope :active, where(:active => true)
你可以写下你的观点,如
city.events.active.each do |thing|
和
city.activities.active.each do |activity|