Ruby on rails 链接对对象的调用列表,然后返回修改过的对象

Ruby on rails 链接对对象的调用列表,然后返回修改过的对象,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个Rails对象,即Order。我还有一个需要调用此对象的调用列表:[:address,:number]。我想在给定对象上链接所有这些方法,并返回结果。因此,上面的结束值将等于调用:obj.address.number 目前,我已使用以下方法完成此操作: obj = Order.first [:address, :name].each { |m| obj = obj.send(m) } puts obj 但我觉得,使用更“ruby”的方法肯定有一个实现这一点的最佳方法。您可以使用它

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

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

 obj = Order.first
 [:address, :name].each { |m| obj = obj.send(m) }
 puts obj
但我觉得,使用更“ruby”的方法肯定有一个实现这一点的最佳方法。

您可以使用它来实现它

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

Order.first.address.name
你可以用它来实现它

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

Order.first.address.name
你可以用它来实现它

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

Order.first.address.name
你可以用它来实现它

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

Order.first.address.name

这有点令人困惑。只调用
obj.address.number有什么不对?因为调用列表是动态的。这有点混乱。只调用
obj.address.number有什么不对?因为调用列表是动态的。这有点混乱。只调用
obj.address.number有什么不对?因为调用列表是动态的。这有点混乱。只调用
obj.address.number有什么不对?因为调用列表是动态的。