2012-08-29 73 views
0

我的模型是;關係;無法從數據庫獲取所有事件

class region 
has_many :cities 
end 

class event 
belongs_to :city 
end 

class city 
has_many :events 
belongs_to :region 
end 
Eventcontroller

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 

頁: 區域/ X /城市/ X /事件

顯示來自城市的所有事件。

問題:如何顯示我/地區/活動頁面上所有城市的所有活動?我創建了一個資源

resources :regions do 
    resources :events do 
    collection do 
    get 'all_events' 
    end 
end 

但是,我如何在eventcontroller中定義「all_event」動作?

我無法在我的eventcontroller @events = @ cities.events中執行此操作,因爲事件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」

+0

只是使它event.city在多態路徑 –

+0

thanks.Kyle!..它作品..:包括是偉大的功能! – Remco

回答

1

如果我理解正確這一切,你會需要做的:

在你的控制器

def all_events 
    @events = Event.includes(:city) 
    end 

那麼在你看來,使用塊訪問所有的情況下

@events.each do |event| 
     event.name 
     event.city.name #not sure if you have a name attribute 
+0

我需要我的鏈接的地區,城市和事件的值。像this = link_to event.title,polymorphic_path(@region,@city,event) – Remco

+0

你需要顯示哪些數據?我仍然不確定需要查詢什麼 –

+0

我想顯示所有城市的所有事件的一個頁面..指向正確的/地區/ x /城市/活動/ ID路徑的鏈接... – Remco