目前我有这行代码:
[@organisation.name, @organisation.address, @organisation.city, @organisation.postcode, @organisation.country, @organisation.phone_number].join(', ')
这似乎不必要地冗长。
有没有一种方法可以只声明一次
@organisation
并从中获取所需的各种字段? 最佳答案
为了清楚起见,我把它分成了几行,但也可以是一行。
fields = [:name, :address, :city, :postcode, :country, :phone_number]
values = fields.map { |field| @organisation.send(field) }
csv = values.join(', ')
send
方法是你追求的魔力它向对象“发送”方法调用并返回该方法调用的结果。