我有一个Rails对象,即Order
。我还有一个我需要调用此对象的调用列表:[:address, :number]
。我想在给定对象上链接所有这些方法,并返回结果。因此,上述结束值等于对obj.address.number
的调用。
目前,我使用以下方式完成此操作:
obj = Order.first
[:address, :name].each { |m| obj = obj.send(m) }
puts obj
但我觉得使用更“红宝石”的方法确实有最好的方法来实现这一目标。
答案 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