如何针对给定的has_n
在Rails上实现n
关联?比方说橄榄球队吧。它有15名球员。您是否将其作为has_many
实施并在保存前检查以确保它有15个玩家,或者您是否愿意将其实施为15 belongs_to
?请注意,在这种情况下,订单很重要。
答案 0 :(得分: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
答案 1 :(得分:0)
我更喜欢通过has_many
制作并在添加新玩家时验证玩家的数量。
我认为这是建立一对多关系的正确方法。