你将如何has_n
为给定的 Rails 实现关联n
?比如说一个橄榄球队。它有15名球员。您是否将其实现为has_many
并在保存之前签入以确保它有 15 个玩家,还是您更愿意将其实现为 15 个belongs_to
?请注意,在这种情况下,顺序很重要。
问问题
98 次
2 回答
1
编辑以反映您的订购请求...
您需要在 player 表中添加一个 sort_key。您可以使用整数,但浮点数始终是更灵活的选择。然后使用该:order => "sort_key"
短语。
class Team < ActiveRecord::Base
has_many :players, :order => "sort_key", :inverse_of => :team
end
class Player < ActiveRecord::Base
belongs_to :team, :inverse_of => :players
validate :validate_players_count, :on => :create
def validate_players_count
if team.players.size > 15
errors[:base] << "a team can only have 15 players"
end
end
end
于 2012-05-15T04:12:16.383 回答
0
在添加新玩家时,我更喜欢通过has_many
并验证玩家数量。
我认为这是建立一对多关系的正确方法。
于 2012-05-15T03:41:05.237 回答