目前我有这行代码:
[@organisation.name, @organisation.address, @organisation.city, @organisation.postcode, @organisation.country, @organisation.phone_number].join(', ')
似乎不必要地冗长。
有没有办法只说一次@organisation
,并从中获取您想要的各个字段?
答案 0 :(得分:2)
fields = [:name, :address, :city, :postcode, :country, :phone_number]
values = fields.map { |field| @organisation.send(field) }
csv = values.join(', ')
send
方法是你所追求的魔力。它发送'方法调用对象并返回该方法调用的结果。
答案 1 :(得分:1)
如果你使用Ruby 2.3,你可以试试这个:
@organisation.attributes.fetch_values("name", "address", "city", "postcode", "country", "phone_number").join(', ')
答案 2 :(得分:0)
正如答案所提到的那样,发送",你的问题不太清楚,但根据一种解释,instance_variables
将是你正在寻找的魔力。< / p>