委托有什么好处?除了作为一种方便的方法之外,还有其他原因吗?它与模型中的简单包装方法相比如何?
没有代表我会有:
Class Goal
belongs_to :user
end
Time.now.in_time_zone(goal.user.timezone)
现在有了代表,是否有以下优势:
Class Goal
belongs_to :user
delegate :timezone, :to => :user
...
end
Time.now.in_time_zone(goal.timezone)
与包装方法相比:
Class Goal
belongs_to :user
def tz
self.user.timezone
end
...
end
Time.now.in_time_zone(goal.tz)
我想我更喜欢 wrapper 方法,因为我可以给它一个任意别名(尽管如果我使用 rtfm 也可以使用委托)。这里还有其他事情吗?(我似乎无法根据委托键进行查询)