试图让我的头脑在这里围绕Feedzirra。
我已经完成了所有设置和一切,甚至可以获得结果和更新,但是发生了一些奇怪的事情。
我想出了以下代码:
def initialize(feed_url)
@feed_url = feed_url
@rssObject = Feedzirra::Feed.fetch_and_parse(@feed_url)
end
def update_from_feed_continuously()
@rssObject = Feedzirra::Feed.update(@rssObject)
if @rssObject.updated?
puts @rssObject.new_entries.count
else
puts "nil"
end
end
对,我在上面所做的,是从大提要开始,然后只获取更新。我确定我一定是在做一些愚蠢的事情,因为即使我能够获取更新并将它们存储在同一个实例变量中,但在第一次之后,我再也无法获得这些了。
显然,这是因为我只用更新覆盖了我的实例变量,并丢失了完整的提要对象。
然后我考虑将我的代码更改为:
def update_from_feed_continuously()
feed = Feedzirra::Feed.update(@rssObject)
if feed.updated?
puts feed.new_entries.count
else
puts "nil"
end
end
好吧,我没有覆盖任何东西,这应该是正确的方法吗?
错了,这意味着我注定要总是尝试获取同一个静态提要对象的更新,因为虽然我得到了一个变量的更新,但我从来没有真正更新我的“静态提要对象”,新添加的项目将是附加到我的“feed.new_entries”,因为它们在理论上是新的。
我确定我在这里错过了一步,但如果有人能给我一些启发,我将不胜感激。我已经阅读了这段代码几个小时,但无法掌握它。
显然,如果我做了类似的事情,它应该可以正常工作:
if feed.updated?
puts feed.new_entries.count
@rssObject = initialize(@feed_url)
else
因为这会用一个全新的提要对象重新初始化我的实例变量,并且更新会再次出现。
但这也意味着在那个确切时刻添加的任何新更新都会丢失,以及大量的矫枉过正,因为我必须再次加载该东西。
提前致谢!