1

次のネストされたリソースがあります。

resources :categories, :only => [:show], :path => "" do
resources :games, :only => [:show], :path => "" do
end

私が行うすべてのアイテムを取得するには:

 @feeditems = Game.all(:include => [:categorygames => :category])

それらを .erb テンプレートで表示するには:

<%= category_game_path(feeditem.categorygames.first.category, feeditem) %>

これはこれまでのところうまくいきます。今、同じ方法を使用して、URL をアトム フィードに含めたいと考えました。URLを指定する必要があるため、次のようにしました。

@feeditems.each do |feeditem|
feed.entry(feeditem, :url => category_game_path(feeditem.categorygames.first.category, feeditem)) do |entry|
  entry.title feeditem.name_de
...

残念ながら、私は常に「NoMethodError」エラーと「undefined method `category_game__path' #<#:0x007fa7c96c3090>」を受け取ります。

ビルダーの動作が .erb-template と異なるのはなぜですか? どうすればこれを整理できますか?

編集

他の誰かが同様の問題を抱えていたので、私はさらに一歩前進しました。

私はこれを次のように変更しました:

 feed.entry(:url => url_for(:action => 'show', :controller =>'games', :category_id => feeditem.categorygames.first.category, :id => feeditem, :only_path => false)) do |entry|

今、私はこのエラーを受け取ります:

     undefined method `id' for {:url=>"http://localhost:3000/sport-games/wizard-game"}:Hash 

それでも、私にはアイデアがないので、これを解決してください。

4

1 に答える 1