0
我正在使用Twitter gem
检索特定的推文并将它们保存到我的数据库中。我想处理nil
价值和使用unless item.blank?
为此目的。这里是我的代码:Rails - 处理模型中的零值
def self.get_tweets user
all_tweets = CLIENT.user_timeline(user, count: "20", exclude_replies: true, include_rts: false)
good_tweets = all_tweets.select{ |t| t.retweet_count + t.favorite_count > 0}
good_tweets.each do |tweet|
Twit.find_or_create_by(link: "#{tweet.uri}") do |twit|
twit.content = tweet.text unless tweet.text.blank?
twit.like = tweet.favorite_count
twit.retweet = tweet.retweet_count
twit.first_date = tweet.created_at
twit.engagement = twit.like + twit.retweet
twit.image_url = tweet.media[0].media_url unless tweet.media[0].media_url.blank?
twit.content_url = tweet.urls[0].expanded_url.to_s.split("?")[0] unless tweet.urls[0].blank?
end
end
end
不过,我知道这是不是继续作为我的代码首先崩溃的广告时,我刷新我的网页我有我的本地URL http://localhost:3000/twits
的值,它是我要的不是什么好办法。
我该如何优雅地处理这个错误?我一个月以来一直在学习Ruby/Rails,所以不太清楚。谢谢。
你问“我该如何优雅地处理这个错误? “但是你忽略了iinclude错误的文本 – MarsAtomic
@MarsAtomic,错误是下面的”未定义方法'media_url'为nil:NilClass“。它发生是因为我需要保存的一些推文没有所有的属性,一些我的脚本失败了......我需要正确保存推文,即使他们没有image_url,文本或链接内的例如。谢谢! – Eric