如何确保一组属性的唯一性

时间:2012-11-16 14:32:45

标签: ruby-on-rails ruby-on-rails-3.2

我正在使用Rails 3.2.8,我希望确保表格的一行中的一组属性的唯一性,但我可以有多个具有相同值的行。 validates_uniqueness_of验证器似乎不适用于此。为了给出一些背景,这些是彩票号码选择。

1 个答案:

答案 0 :(得分: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