如果我有一个作为字符串的关联名称,有没有办法可以获取关联对象的句柄?
例如:
o = Order.first
o.customer 会给我这个订单所属的客户对象。
如果我有:
o = Order.first
relationship = 'customer'
我想做类似的事情:
customer = eval("o.#{relationship}")
我知道 eval 是一个糟糕的选择,我应该避免它。执行此操作的最佳方法是什么(因为 eval 在此示例中不起作用)。
我确实有这个工作:
customer = o.association(relationship)
后来我发现该关联不是公共 API 的一部分,不应该使用。因为当我使用一行代码时,我在页面的上方(引用了该关系)停止了工作。
任何想法都会很棒!