在两个模型之间共享委派方法

时间:2011-03-15 17:46:11

标签: ruby-on-rails dry delegation

模型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

因此,我不必在每个课程中重复相同的方法,以两种不同的方式在两者之间分享它们的最佳方法是什么?

1 个答案:

答案 0 :(得分: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