ユーザー、ゲーム、プレーヤーの 3 つのモデルがあります。基本的に、ユーザーとゲームの間には多対多の関係があり、プレイヤーは参加テーブルとして使用されますが、プレイヤーには他の情報があるため、独自のモデルがあります。
プレーヤーにはゲーム ID とユーザー ID の一意の組み合わせが必要なので、プレーヤーで次のように言いました。
validates_uniqueness_of :user_id, :scope => :game_id
そして、私の仕様で、私は言いました(shouldaマッチャーを使用して):
it { should validate_uniqueness_of(:user_id).scoped_to(:game_id)}
プレーヤーが定義する関係は次のとおりです。
belongs_to :game, :inverse_of => :players
belongs_to :user, :inverse_of => :players
それでも、その仕様で ActiveRecord::statementinvalid エラーが発生します
ActiveRecord::StatementInvalid: Mysql2::Error: Column 'game_id' cannot be null: INSERT INTO `players` ETC...
何がうまくいかないのですか?