2017-03-29 11 views
1

Rails/Rubyを使用する。私は以下を持っています:最初に失敗した場合は別のメソッドを呼び出す

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

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

これはうまくいく方法ですか?

答えて

1

あなたが失敗した場合に.process!戻り虚偽を作ることができる場合は、この

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) 
関連する問題