0

Rails 3.2.8を使用しており、テーブルの1行の属性セット全体で一意性を確保したいのですが、同じ値を持つ複数の行を持つことができます。validates_uniqueness_ofバリデーターはこれには機能しないようです。いくつかのコンテキストを与えるために、これらは宝くじ番号の選択です。

4

1 に答える 1

0

winning_number_X!=を確認するには、次のことwinning_number_Yを試してください。

# in your model

UNIQ_FIELDS = [:winning_number_1, :winning_number_2, :winning_number_3,
  :winning_number_4, :winning_number_5, :winning_number_6, :winning_number_bonus]

validate :numbers_uniquness

# ...    

def numbers_uniquness 
  unless UNIQ_FIELDS.map{|field| self[field] }.uniq.length == UNIQ_FIELDS.length
    errors[:base] << "Numbers have to be uniq" 
  end
end
于 2012-11-26T17:02:27.267 に答える