0
方法调用这是我的函数的代码,其中我想提出一个呼叫new
传递不同的参数,根据条件在Ruby中
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
或者设置为registration.email_2
或registration.email
。这样做的一种方法当然是编写整个代码两次,其中包含if-elsif
声明。但我只想知道,如果有更聪明,更优雅的方式来做到这一点?
正是我在找的东西。谢谢! – 2012-04-10 07:49:20
当您将参数传递给方法调用时,是否有可能在此行中使用显式if语句,因为代码中的这一点? – 2012-04-10 07:49:57
您可以在调用'new'后始终设置'email'属性。 – 2012-04-10 07:50:36