0

私のモデルは次のとおりです。

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

ページ: 地域/x/都市/x/イベント

市内のすべてのイベントを表示します。

質問: /region/events ページにすべての都市のすべてのイベントを表示するにはどうすればよいですか? リソースを作成しました

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

しかし、イベントコントローラーで「all_event」アクションを定義するにはどうすればよいでしょうか?

イベントの所属先: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'

4

1 に答える 1

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
于 2012-08-29T21:19:46.950 に答える