2017-11-10 12 views
0

取得するデータに一貫性がないため、一部のデータをETLプロセスで正規化しようとしています。railsハッシュはリストから最初の値を抽出します

迷惑ですが、私はここで学びます。これを行うためのより多くのルビー/レールの方法がある場合

興味:

現在、我々のような何かをしますか?

考慮:

received = datum.values_at(:quantity_received,:received_cases,:received_quantity).compact.first 

答えて

1

は私がより良い解決策があるとは思いません。私は

def value_you_need(datum) 
    datum.values_at(*keys_of_interest).find(&:itself) 
end 

def keys_of_interest 
    %i(quantity_received received_cases received_quantity) 
end 

received = value_you_need(datum) 

object#itself方法はルビー2.2.0から存在している(私は長い行サポーターないんだけど)、いくつかのヘルパーメソッドを定義しようと思います。それ以外の場合はcompact.firstに進みます。

詳細をご記入ください:もしfalseが解決策に気をつけている場合は、compact.firstで私たちの3つだけ正しいものです。しかし、私はあなたが当てにしなかった、または最初の選択肢が間違っていると思っていました。

関連する問題