Я использую AtomFeedHelper, и все хорошо работает за исключением одного канала, где я должен связать каждую запись в URL, который не является значением по умолчанию polymorphic_url для записи.
На документацию я указал: опция URL для записи. Это правильно представляет a
тег в узле атома, но неподвижные точки к значению по умолчанию polymorphic_url. Рассмотрение источника и документации, которую я не понимаю, почему это происходит.
Вот разработчик в качестве примера:
atom_feed do |feed|
feed.title("Reports")
feed.updated(@reports.first.created_at)
for report in @reports
content = report.notes
feed.entry(report) do |entry|
entry.title(report.title)
entry.content(content, :type => 'html')
entry.url("http://myhost/page/")
entry.updated(report.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ"))
entry.author do |author|
author.name(report.user.username)
end
end
end
end
Вот пример проблемного узла:
tag:myhost.mydomain.com,2005:SiteReport/2
2010-03-30T13:11:07-07:00
2010-03-30T13:11:07-07:00
Test Title
Test Content
http://myhost/page/
2010-03-30T13:11:07Z
Author
Я хочу, чтобы значение href в теге link соответствовало значению в теге URL, но это не делает.
То, когда я смотрю на источник, перечислило для записи здесь http://api.rubyonrails.org/classes/ActionView/Helpers/AtomFeedHelper/AtomFeedBuilder.html
Я предположил бы, что эта строка будет работать правильно:
@xml.link(:rel => 'alternate', :type => 'text/html', :href => options[:url] || @view.polymorphic_url(record))
Перепутанный. Кто-либо встретился с этим прежде?
Спасибо все!
Я добился этого, передав параметр :url непосредственно в метод feed.entry:
feed.entry(report, :url => report_url(report.slug)) do |entry|