如何对两个以上的关联使用委托方法?

发布于 2024-10-21 06:49:20 字数 430 浏览 2 评论 0原文

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

pick.event.league.sport.name

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

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

但我想使用 委托方法! !!

Let's say that I'm retrieving the name of the sport by calling the following chain of associations:

pick.event.league.sport.name

How can I use the delegate method so that I can just call *pick.event_league_sport_name* like so? Obviously, I can create a method in the pick model:

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

But I want to use the delegate method!!!

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

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

发布评论

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

评论(2

素年丶 2024-10-28 06:49:20

我不建议这样做,但如果你想要......

delegate :name , :to => "event.league.sport" ,:prefix=>"event_league_sport"

也没有前缀。

一定要处理零关联......

祝你有美好的一天!

I dont suggest this , but if you want ...

delegate :name , :to => "event.league.sport" ,:prefix=>"event_league_sport"

also without prefix.

be sure to handle nil associations ...

have a nice day!

虚拟世界 2024-10-28 06:49:20

您可以执行以下操作:

class Pick
  def sport
    event.league.sport
  end

  delegate :name, :to => :sport
end

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

You could do the following:

class Pick
  def sport
    event.league.sport
  end

  delegate :name, :to => :sport
end

This would result in pick.name being equivalent to pick.event.league.sport.name.

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