gpt4 book ai didi

ruby-on-rails - 如何在没有直接属于_to 的情况下建立一种 "belongs_to :through"关联?

转载 作者:行者123 更新时间:2023-12-03 08:34:19 26 4
gpt4 key购买 nike

我知道“belongs_to :through”是无效的。这只是我试图表达我想要实现的目标。忍受我一秒钟...

这就是我所拥有的:

class League
has_many :divisions
end

class Division
belongs_to :league
has_many :teams
end

class Team
belongs_to :division
has_many :players
end

class Player
belongs_to :team
end

现在,为了制作“棒球卡” View 表单,我需要:
name
team.name
team.division.name
team.division.league.name

那么,有没有办法建立一个“belongs_to :through”关联来直接从“players_controller”访问“division.name”而不需要“team”。字首??我必须访问从“玩家”到“部门”的很多列,所以我正在寻找一种方法来“直接”访问这些列。

一种选择是在 'players' 表中包含一个 'division_id' 列,但有人告诉我这会破坏关系数据模型,因为如果数据选择功能没有正确处理(例如玩家 A 在分部 A 的团队 A 中,但玩家 A 的 Division_id 列设置为分部 B)。

是否可以建立“符号链接(symbolic link)”,例如“division”现在指的是“team.division”,“league”现在指的是“team.division.league”??

或者,是每次使用完整路径的唯一真正选择吗?

希望有人可以提供帮助。

最佳答案

在模型类中使用委托(delegate)。

class Team < ActiveRecord::Base
belongs_to :division
has_many :players

delegate :league, to: :division
end

引用: http://api.rubyonrails.org/classes/Module.html#method-i-delegate

关于ruby-on-rails - 如何在没有直接属于_to 的情况下建立一种 "belongs_to :through"关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com