如果第一个失败,请调用其他方法

时间:2017-03-29 02:25:05

标签: ruby-on-rails ruby

使用Rails / Ruby。我有以下内容:

{{1}}

虽然这有效,但还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您可以在失败时让.process!返回false,则可以执行此操作

rg = ReverseGeocoder.new(lat, lng, LOCALITY).process! || ReverseGeocoder.new(lat, lng, ADMINISTRATIVE_AREA_LEVEL_1).process!
save_normalized_values(rg) if rg[:results].any?

否则我看不到更清洁的方式,只是不同:

rg = ReverseGeocoder.new(lat, lng, LOCALITY).process!
rg[:results] || rg = ReverseGeocoder.new(lat, lng, ADMINISTRATIVE_AREA_LEVEL_1).process!
rg[:results] && save_normalized_values(rg)