0
Twitter gem
を使用して特定のつぶやきを取得し、データベースに保存します。私はnil
の値を扱いたいと思いますし、この目的のためにunless item.blank?
を使います。ここに私のコードは次のとおりです。Rails - モデル内のNil値を処理する
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
しかし、私はそれは私が私が欲しいものではありませんどの値として私はlocalhostのURL http://localhost:3000/twits
を得た私のコードは、最初の広告をクラッシュとして、私は私のページを更新していたときに続行するには良い方法ではありません理解して。
どうすればこのエラーをうまく処理できますか? Ruby/Railsを自分で1ヶ月学習していますので、あまり明確ではありません。ありがとうございました。
「このエラーをうまく処理するにはどうすればよいですか? "エラーのテキストを含めるのを怠る。 – MarsAtomic
@MarsAtomic、エラーは、次の"未定義メソッド 'media_url 'for nil:NilClass"です。私のスクリプトは失敗します...例えば、内部にimage_url、text、またはlinkがないのに、つぶやきを適切に保存する必要があります。 – Eric