Kle*_* S. 2 parsing feeds feedzirra ruby-on-rails-3
我试图从我的博客加载提要但这导致提到的标题中的错误.
错误消息:
NoMethodError (undefined method `entries' for 0:Fixnum):
app/controllers/pages_controller.rb:6:in `home'
Run Code Online (Sandbox Code Playgroud)
这就是我在做的事情:
我在名为的文件lib夹中创建了一个文件blog_feeds.rb,其中仅包含以下内容:
module BlogFeeds
require 'feedzirra'
def load_feeds
feeds = Feedzirra::Feed.fetch_and_parse('http://blog.shigotodoko.com/feed')
end
end
Run Code Online (Sandbox Code Playgroud)
错误的第6行是:
@feeds = load_feeds.entries
Run Code Online (Sandbox Code Playgroud)
请注意,此错误有时仅发生,而不是总是发生.
那么,关于这里出了什么问题的任何想法?
谢谢!
在提取Feed时,如果HTTP提取导致错误(即不是200或3XX),Feedzirra将返回HTTP状态代码而不是包含提要条目的对象.
为了优雅地处理这个条件,通过将它包装在以下内容中来检查从fetch_and_parse返回的对象的类型:
unless feeds.is_a?(Fixnum)
# work with the feeds object
else
# handle the error condition, retry, etc.
end
Run Code Online (Sandbox Code Playgroud)
您还应该能够通过反复在浏览器中提取Feed来查看这些故障,如果它足够频繁的话.