В принципе у меня есть приложение типа блога, который может иметь сообщения, созданные из источника подачи RSS, для которого я использую feedzirra перл:Rails 4 - Обновить запись активной записи Если изменения присутствуют по сравнению с источником?
def self.update_from_feed
feed_url = ENV['FEED_URL']
feed = Feedzirra::Feed.fetch_and_parse(feed_url)
add_entries(feed.entries)
end
Таким образом, один из методов в моей почтовой модели обрабатывает создавая новое сообщение от разобранного корма, и выглядит примерно так:
def self.add_entries(entries)
entries.each do |entry|
unless exists? :guid => entry.id
create!(guid: entry.id, name: entry.title, author: entry.author, summary: entry.summary, published_at: entry.published)
end
end
Feedzirra также имеет метод обновления доступного (я попытался реализовать, но не смог получить его работу), в котором можно проверить фид изменений, и если изменения присутствуют, он будет загружать изменения в фиде и создавать новые сообщения в виде n ecessary. Как вы можете видеть в моем вышеописанном методе, используя unless exists?
, если сообщение уже создано (определено с помощью guid) по сравнению с исходным, оно пропускает его и не вносит никаких изменений.
Однако в приложении типа блога, в идеале, вместо проверки, чтобы увидеть, существует ли это, проверьте, изменилось ли оно (а именно, :summary
), возможно, используя аксессуар last_modified
, а затем обновить уже созданная запись. Есть ли что-то похожее на exists?
, которое я мог бы использовать, чтобы обновить запись, как это/я на правильном пути или мне нужно копать гораздо глубже?