これは、呼び出しを行っている関数のコードですnew
def create_person_detail_from_registration(type, registration, registration_detail)
person_detail = type.constantize.new(
:email => registration.email_2,
:phone_1 => registration_detail.phone_1,
:phone_2 => registration_detail.phone_2,
:phone_3 => registration_detail.phone_3,
:phone_4 => registration_detail.phone_4,
:phone_5 => registration_detail.phone_5,
:phone_6 => registration_detail.phone_6,
:phone_7 => registration_detail.phone_7,
:address_1 => registration_detail.address_1,
:address_2 => registration_detail.address_2,
:city => registration_detail.city,
:state => registration_detail.state,
:postal_code => registration_detail.postal_code,
:country => registration_detail.country
)
return person_detail
end
問題は、値type
が に設定されているか、または:email
に設定されているかによって異なります。もちろん、これを行う 1 つの方法は、コード全体をステートメントで囲んで 2 回記述することです。しかし、これを行うためのよりスマートでエレガントな方法があるかどうか知りたいだけですか?registration.email_2
registration.email
if-elsif