0

モデルの初期化メソッドに次のものがあります。

@home_phone = contact_hash.fetch('HomePhone')

ただし、代わりにこれが必要になる場合があります。

@home_phone = contact_hash.fetch('number')

また、どちらも当てはまらない場合があり、home_phone属性を空にする必要があります。

次のように大きなループを作成せずにこれを書き出すにはどうすればよいですか。

if contact_hash.has_key?('HomePhone')
  @home_phone = contact_hash.fetch('HomePhone')
elsif contact_hash.has_key?('number')
  @home_phone = contact_hash.fetch('number')
else 
  @home_phone = ""
end
4

4 に答える 4

7

あなたは試すことができます

@home_phone = contact_hash.fetch('HomePhone', contact_hash.fetch('number', ""))

またはそれ以上

@home_phone = contact_hash['HomePhone'] || contact_hash['number'] ||  ""
于 2013-11-11T21:54:14.890 に答える
0
def doit(h, *args)
  args.each {|a| return h[a] if h[a]}
  ""
end

contact_hash = {'Almost HomePhone'=>1, 'number'=>7}
doit(contact_hash, 'HomePhone', 'number')  # => 7
于 2013-11-12T00:36:27.147 に答える