代行するメリットは?便利な方法以外に追加の理由はありますか?モデル内の単純なラッパー メソッドと比べてどうですか?
デリゲートがなければ、次のようになります。
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)
任意のエイリアスを付けることができるので、ラッパー メソッドを好むと思います (ただし、rtfm を使用する場合は、デリゲートでも可能である可能性があります)。ここで他のことが起こっていますか?(委任されたキーに基づいてクエリを実行できないようです)