对象的调用链列表,然后返回修改后的对象

时间:2015-06-26 11:02:35

标签: ruby-on-rails ruby

我有一个Rails对象,即Order。我还有一个我需要调用此对象的调用列表:[:address, :number]。我想在给定对象上链接所有这些方法,并返回结果。因此,上述结束值等于对obj.address.number的调用。

目前,我使用以下方式完成此操作:

 obj = Order.first
 [:address, :name].each { |m| obj = obj.send(m) }
 puts obj

但我觉得使用更“红宝石”的方法确实有最好的方法来实现这一目标。

1 个答案:

答案 0 :(得分:3)

您可以使用https://packaging.python.org/en/latest/distributing.html来实现它

result_object = [:address, :name].inject(Order.first, :send)
puts result_object

类似于

Order.first.address.name