2017-06-29 21 views
0

ArgumentError: Unknown key: :uniqueness. Valid keys are: :class_name, :anonymous_class, :foreign_key, :validate, :autosave, :table_name, :before_add, :after_add, :before_remove, :after_remove, :extend, :primary_key, :dependent, :as, :through, :source, :source_type, :inverse_of, :counter_cache, :join_table, :foreign_type, :index_errorsRailsの5:例外ArgumentError:不明なキー:一意

class League < ActiveRecord::Base 
    validates :user_id, presence: true 
    has_one :user 
    has_many :teams, uniqueness: { 
    scope: [:user_id], 
    message: 'You can only create one team per league' 
    } 
end 

リーグで複数のチームがありますが、チームは独特のuser_idを持つ必要があります。

create_table "leagues", force: :cascade do |t| 
    t.integer "user_id" 
    t.string "name" 
    t.string "key" 
    t.index ["user_id"], name: "index_leagues_on_user_id" 
end 

create_table "teams", force: :cascade do |t| 
    t.integer "user_id" 
    t.string "name" 
    t.string "players" 
    t.integer "league_id" 
    t.index ["league_id"], name: "index_teams_on_league_id" 
    t.index ["user_id"], name: "index_teams_on_user_id" 
end 

validates :user_id, presence: truehas_one :userリーグを作成し、ユーザーとの関係です。

答えて

0

ArgumentError: Unknown key: :uniqueness. Valid keys are: :class_name, :anonymous_class, :foreign_key, :validate, :autosave, :table_name, :before_add, :after_add, :before_remove, :after_remove, :extend, :primary_key, :dependent, :as, :through, :source, :source_type, :inverse_of, :counter_cache, :join_table, :foreign_type, :index_errors

エラーがすべて表示されます。 無効なキーuniqueness)をhas_manyの関連付けに渡しています。私は一意性検証を実行し、それをhas_manyアソシエーション上で混ぜようとしていると思います。これらを読むことをお勧めします。Guides

+1

レールの一意性検証だけでは必ずしも十分ではありません。それは、同じデータを作成するための2つの同時リクエスト(エンドユーザーが2倍のクリックを送信した)の近くで2つが追加される競合状態になります。標準的なプラクティスは、一意性のためのレール検証とデータベース検証の両方を行うことです。 [このリンク](https://rietta.com/blog/2015/05/04/validates-uniqueness-race-condition-in-ruby-on-rails/)では、これがどのように起こり、どのように設定するかをさらに詳しく説明していますアップ –

+0

@MichaelGormanよ!私はそれを認識しています。 OPが彼が何を間違ってやっているのかを理解した後に、それが来るでしょう!私の答えは何が間違っているのかを言う。それでおしまい :) – Pavan

関連する問題