Я хотел бы знать, смогу ли я написать валидацию, которая проверила бы уникальность записи на основе нескольких полей. Моя модель имеет составной первичный ключ, т.е.
field :houseno, :type => String
field :street, :type => String
field :boro, :type => String
Что было бы хорошим способом подтвердить уникальность этой записи?
Я пытаюсь использовать пользовательские валидаторы, такие как:
class AddressValidator < ActiveModel::Validator
def validate(record)
record.errors[:base] << "This address is already in our records." unless check(record)
end
private
def check(record)
Address.find(:street=>record.street,:houseno=>record.houseno,:boro=>record.boro).length > 0
end
end