редактировать
Возможно, я вас неправильно понял, и, возможно, все, что вам нужно, это validates_uniqueness_of check. Дайте мне знать, если я что-то пропущу.
Active Records имеет метод new_record?
, чтобы определить, сохранен ли уже объект (существует ли для него запись в базе данных).
Я копирую это демо из руководства по рельсам :
>> p = Person.new(:name => "John Doe")
=> #<Person id: nil, name: "John Doe", created_at: nil, :updated_at: nil>
>> p.new_record?
=> true
>> p.save
=> true
>> p.new_record?
=> false
Вы также можете использовать встроенные проверки рельсов, что-то вроде
class Department < ActiveRecord::Base
validate :my_validation_method, :on => update
def my_validation_method
errors.add_to_base("You can't update existing objects")
end
end
Вы можете найти больше информации о проверке рельсов в учебнике, на который я ссылался выше.