Ruby on rails 为什么Rails没有一个通过方法实现的方法?
如本文所述,Ruby on rails 为什么Rails没有一个通过方法实现的方法?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,如本文所述,属于:x,通过::y关系最好通过委托方法实现 Rails不支持通过关系归属的原因是否有特定的原因(技术原因、设计选择) class Division belongs_to :league has_many :teams end class Team belongs_to :division has_many :players end class Player belongs_to :team belongs_to :division, through: :
属于:x,通过::y
关系最好通过委托方法实现
Rails不支持通过关系归属的原因是否有特定的原因(技术原因、设计选择)
class Division
belongs_to :league
has_many :teams
end
class Team
belongs_to :division
has_many :players
end
class Player
belongs_to :team
belongs_to :division, through: :team # WON'T WORK
end
它将像这样工作,而不是使用through
belongs_to :division, class_name: Team
它将像这样工作,而不是使用through
belongs_to :division, class_name: Team
我不知道为什么,但ActiveRecord方法中有一种自上而下的一致模式。您正在寻找的功能已经由
提供了很多:通过-只需将语句放在祖先对象而不是后代对象中:
有很多:通过协会也有助于建立
通过嵌套的“快捷方式”有许多关联。例如,如果一个文档有许多节,而一个节有许多段落,您有时可能希望获得文档中所有段落的简单集合。[]
在您的情况下,如下所示:
class Division
belongs_to :league
has_many :teams
has_many :players, through: :teams
end
class Team
belongs_to :division
has_many :players
end
class Player
belongs_to :team
end
然后,您可以调用league.player
来获取给定联赛中的球员数组,或者调用player.league
来获取给定球员的联赛。我不知道为什么,但ActiveRecord方法中有一个一致的自上而下模式。您正在寻找的功能已经由提供了很多:通过-只需将语句放在祖先对象而不是后代对象中:
有很多:通过协会也有助于建立
通过嵌套的“快捷方式”有许多关联。例如,如果一个文档有许多节,而一个节有许多段落,您有时可能希望获得文档中所有段落的简单集合。[]
在您的情况下,如下所示:
class Division
belongs_to :league
has_many :teams
has_many :players, through: :teams
end
class Team
belongs_to :division
has_many :players
end
class Player
belongs_to :team
end
然后,您可以调用league.players
以获取给定联赛中的球员数组,或调用player.league
以获取给定球员的联赛