0

你将如何has_n为给定的 Rails 实现关联n?比如说一个橄榄球队。它有15名球员。您是否将其实现为has_many并在保存之前签入以确保它有 15 个玩家,还是您更愿意将其实现为 15 个belongs_to?请注意,在这种情况下,顺序很重要。

4

2 回答 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 回答