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

发布于 2024-10-21 20:11:38 字数 331 浏览 3 评论 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 方式在两者之间共享它们的最佳方法是什么?

Model A and Model B share the following delegation methods:

  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

So that I don't have to repeat the same methods in each class, what's the best way to share them between the two in a nice DRY way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不疑不惑不回忆 2024-10-28 20:11:38

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

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

Add the methods to a module and include said module in your classes:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文