如果我使用delegate :Mayfield, to: :user
我可以在:Mayfield上调用什么以查看将其委托给:user类吗?
解决方案: 不可能
答案 0 :(得分:1)
正如@BKSpurgeon指出的那样,delegate
方法的implementation除了创建可调用对象上给定方法的方法外,什么也不会做。
因此,没有“动态”委托:只需实现一个具有相同名称的常规方法,并使其返回所需的任何值即可。
def Mayfield
case some_attribute_value
when 'foo' then user.Mayfield
when 'bar' then something_else.Mayfield
end
end