Я использую 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
Однако, я понимаю, что это не хороший способ выполнить мой код первым врежется объявление, когда я освежающий моей страницу я получил свой локальный URL http://localhost:3000/twits
как значение, которое не то, что я хочу ,
Как я могу элегантно справиться с этой ошибкой? Я изучаю Ruby/Rails самостоятельно один месяц, так что это не так понятно. Спасибо.
Вы спрашиваете: «Как я могу элегантно справиться с этой ошибкой? «но вы не учитываете текст ошибки. – MarsAtomic
@MarsAtomic, ошибка заключается в следующем« неопределенном методе «media_url» для nil: NilClass ». Это происходит потому, что некоторые твиты, которые мне нужно сохранить, не имеют всего атрибута, какой-то мой скрипт терпит неудачу ... Мне нужно сохранить твиты должным образом, даже если у них нет image_url, текста или ссылки внутри, например. – Eric