ruby-on-rails – 如何将委托方法用于两个以上的关联?

假设我通过调用以下关联链来检索运动的名称:

pick.event.league.sport.name

如何使用delegate method以便我可以像这样调用* pick.event_league_sport_name *?显然,我可以在pick模型中创建一个方法:

def event_league_sport_name
     return self.event.league.sport.name
end

但我想用delegate method !!!

最佳答案
您可以执行以下操作:

class Pick
  def sport
    event.league.sport
  end

  delegate :name, :to => :sport
end

这将导致pick.name等同于pick.event.league.sport.name.

转载注明原文:ruby-on-rails – 如何将委托方法用于两个以上的关联? - 代码日志