0

has_n特定のRailsに関連付けをどのように実装しnますか?たとえば、ラグビーチームとしましょう。15人のプレイヤーがいます。として実装し、has_many保存する前にチェックインして15人のプレーヤーがいることを確認しますか、それとも15人として実装しbelongs_toますか?この場合、順序が重要であることに注意してください。

4

2 に答える 2

1

注文のリクエストを反映するように編集されました...

プレーヤーテーブルにsort_keyを追加する必要があります。整数を使用できますが、floatの方が常に柔軟な選択です。次に、その: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私はそれを作り、新しいプレーヤーを追加するときにプレーヤーの数を検証することを好みます。

それが1対多の関係を築く正しい方法だと思います。

于 2012-05-15T03:41:05.237 に答える