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