Ruby on rails 在检索用户国家/地区时,如果geocoder向我发送空数组,如何避免错误(Rails 4/geocoder)

Ruby on rails 在检索用户国家/地区时,如果geocoder向我发送空数组,如何避免错误(Rails 4/geocoder),ruby-on-rails,ruby,arrays,ruby-on-rails-3,rails-geocoder,Ruby On Rails,Ruby,Arrays,Ruby On Rails 3,Rails Geocoder,我正在构建每日交易Rails应用程序 由于geocoder gem,我只向用户显示我与他相关的国家的交易 我想知道如果geocoder无法(出于任何原因)检索国家并发送一个空数组会发生什么,就像我认为它无法发送ip时那样(请参阅) 如果geocoder始终返回至少一个空数组,那么您的代码应该是很好的(除非我不会将此方法命名为set\uu,因为它没有设置任何内容) 试用irb {a: [:d].first || :b} => {:a=>:d} {a: [].first || :b}

我正在构建每日交易Rails应用程序

由于geocoder gem,我只向用户显示我与他相关的国家的交易

我想知道如果geocoder无法(出于任何原因)检索国家并发送一个空数组会发生什么,就像我认为它无法发送ip时那样(请参阅)


如果geocoder始终返回至少一个空数组,那么您的代码应该是很好的(除非我不会将此方法命名为
set\uu
,因为它没有设置任何内容)

试用irb

{a: [:d].first || :b}
=>  {:a=>:d}

{a: [].first || :b}
=> {:a=>:b}
不过我会把它放在偏执狂里,让它明白

Deal.where(country: (set_location_by_ip_lookup.country || 'United States'))
gecoder.search
不应该抛出异常,否则它将被命名为
Geocoder.search根据不成文的ruby约定。我会再次检查这个插件的互联网连接,看看会发生什么

{a: [:d].first || :b}
=>  {:a=>:d}

{a: [].first || :b}
=> {:a=>:b}
Deal.where(country: (set_location_by_ip_lookup.country || 'United States'))