ruby-on-rails - 如何检查对象是否为 nil?

标签 ruby-on-rails ruby rubygems rest-client

我执行以下调用以获取 Ruby 对象,该对象从 Spotify 的 API 返回数据:

spotify_track = RSpotify::AudioFeatures.find('3RmAqYZZjiSyMV40hm6rDL')

返回:

#<RSpotify::AudioFeatures:0x00007fe0cc079b30 @acousticness=nil, @analysis_url="https://api.spotify.com/v1/audio-analysis/3RmAqYZZjiSyMV40hm6rDL", @danceability=nil, @duration_ms=35361, @energy=nil, @instrumentalness=nil, @key=1, @liveness=nil, @loudness=-12.186, @mode=1, @speechiness=nil, @tempo=0, @time_signature=nil, @track_href="https://api.spotify.com/v1/tracks/3RmAqYZZjiSyMV40hm6rDL", @valence=nil, @external_urls=nil, @href=nil, @id="3RmAqYZZjiSyMV40hm6rDL", @type="audio_features", @uri="spotify:track:3RmAqYZZjiSyMV40hm6rDL"> 

当我尝试获取 nil 的属性之一时,出现 404 错误:

> spotify_track.acousticness
Traceback (most recent call last):
        1: from (irb):25
RestClient::NotFound (404 Not Found)

那么,如何检查属性是否为 nil

spotify_track.acousticness.present?spotify_track.acousticness.blank?spotify_track.try(:acousticness) 都是常见的东西返回相同的 RestClient 404 错误。

我正在使用 RSpotify gem,它使用 REST Client gem 。

最佳答案

你可以拯救它并向它添加一些代码,

rescue RestClient::ExceptionWithResponse => err

引用rest-client#response-callbacks-error-handling

关于ruby-on-rails - 如何检查对象是否为 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56955480/

相关文章:

ruby-on-rails - 无法将信用卡添加到 Stripe 上的托管帐户

ruby - Ruby Fiddle 中的嵌套结构

发送 POST 请求时 Ruby 的 Mechanize 错误 401(Steam 交易报价发送)

ruby-on-rails - "Not found. Authentication passthru."错误。设计 Omniauthable 模块不会在另一个引擎中使用 't work when it' s

ruby-on-rails - 安装 Mysql 2 gem 失败

ruby-on-rails - 在测试中关闭来自 Devise 的电子邮件发送 (Rspec)

javascript - acts_as_votable javascript html 表

ruby-on-rails - ruby rails : Aggregating several columns into an Array

ruby-on-rails - 为什么 RubyMine 和终端中的 gem 环境不同

ruby-on-rails - Rails 设置字符串的最大长度