我的模型是;
class region
has_many :cities
end
class event
belongs_to :city
end
class city
has_many :events
belongs_to :region
end
事件控制器
def index
@region = Region.find(params[:region_id])
@cities = @region.cities
@city = City.find(params[:city_id])
@events = @city.events
@events_by_date = @events.group_by(&:start_on)
end
页面:region/x/cities/x/events
显示来自城市的所有事件。
问题:如何在我的 /region/events 页面上显示所有城市的所有事件?我创建了一个资源
resources :regions do
resources :events do
collection do
get 'all_events'
end
end
但是我如何在事件控制器中定义“all_event”动作?
我不能在我的 eventcontroller @events = @cities.events 中执行此操作,因为 event belongs_to :city。有解决方案吗?
我试过这个:
控制器:
@region = Region.find(1)
@events = Event.includes(:city)
@events_by_date = @events.group_by(&:published_on)
看法:
%ul.property_list
- @events_by_date[date].each do |event|
%li.restaurant
%span.icon
%h5
= link_to event.title, polymorphic_path([@region, event.city.name, event])
错误:未定义的方法“region_Assisi_event_path”