0

模型 A 和模型 B 共享以下委托方法:

  delegate :league, :to => :event, :prefix => true, :allow_nil => false # event_league

  def event_league_sport
    self.event_league.sport
  end

  def event_league_sport_name
    event_league_sport.name
  end

这样我就不必在每个课程中重复相同的方法,以一种不错的 DRY 方式在两者之间共享它们的最佳方法是什么?

4

1 回答 1

0

将方法添加到模块并将所述模块包含在您的类中:

module EventDelegator
  def event_league_sport
    self.event_league.sport
  end

  def event_league_sport_name
    event_league_sport.name
  end
end

class A
  include EventDelegator
end
于 2011-03-15T18:23:32.720 回答