Я пытаюсь использовать Rails Atom Feed Helper для создания фида для вложенного ресурса. Мой шаблон представления (index.atom.builder) является:Вложенный ресурс с помощью помощника Atom Feed
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
К сожалению, URL не в состоянии генерировать для feed.entry линии:
feed.entry(favourite, :url => favourite.asset.external_ref) do |entry|
Ошибка "undefined method` favourite_url "для ActionView :: Base".
Я попытался изменить feed.entry строку:
feed.entry([:public, favourite], :url => favourite.asset.external_ref) do |entry|
Но это возвращает запись для массива, а не любимой! У кого-то была аналогичная проблема here also.
Я знаю, что, добавив строку:
map.resource :favourites
к моему routes.rb бы «исправить» эту проблему, но этот ресурс доступен только вложенными под/общественное пространство имен.
У кого-нибудь была эта проблема раньше?
Приветствия Arfon
Эй, спасибо, это сработало! Я не уверен, как я пропустил этот вариант :-) – arfon