Rails Atom Feed Helperを使用して、ネストされたリソースのフィードを生成しようとしています。私のビュー テンプレート (index.atom.builder) は次のとおりです。
atom_feed(:schema_date => @favourites.first.created_at) do |feed|
feed.title("Favourites for #{@user.login}")
feed.updated(@favourites.first.created_at)
@favourites.each do |favourite|
feed.entry(favourite, :url => favourite.asset.external_ref) do |entry|
entry.title(favourite.asset.external_ref)
entry.content(image_tag(favourite.asset.location), :type => 'html')
entry.author do |author|
author.name(@user.login)
end
end
end
end
そして、私は次のルートを持っています:
map.namespace :public do |pub|
pub.resources :users, :has_many => [ :favourites ]
pub.resources :favourites
pub.resources :assets, :only => [ :show ]
end
残念ながら、feed.entry 行の URL の生成に失敗しています。
feed.entry(favourite, :url => favourite.asset.external_ref) do |entry|
エラーは「ActionView::Base の未定義メソッド `favourite_url'」です。
feed.entry 行を次のように変更してみました。
feed.entry([:public, favourite], :url => favourite.asset.external_ref) do |entry|
しかし、これはお気に入りではなく配列のエントリを返します! 誰かがここでも同様の問題を抱えていました。
次の行を追加することを知っています:
map.resource :favourites
私のroutes.rbにこの問題を「修正」しますが、このリソースは/public名前空間の下にネストされた状態でのみ利用できます。
誰かが以前にこの問題を抱えていましたか?
乾杯アルフォン