У меня есть две связанные модели: Apartment
и Lessor
.И мне нужно иметь возможность создавать Lessor
из Apartment
формы.
В Apartment
модель:
belongs_to :lessor
before_save :save_lessor
...
def lessor_cellphone= val
@cellphone = val
end
...
private
def save_lessor
if Lessor.exists? :cellphone => @cellphone
self.lessor = Lessor.find_by_cellphone @cellphone
else
self.create_lessor :cellphone => @cellphone
end
@cellphone = nil
end
В Lessor
модель:
validates :cellphone, :format => {:with => /\d{11}/}, :uniqueness => true
has_many :apartments, :dependent => :nullify
Но когда я пытаюсь создать Apartment
с недействительным cellphone
, Lessor
не создается, потому что проверка завершается неудачно, но `Квартира создана.
Каков наилучший способ проверки cellphone
(а может и больше) и ошибка повышения в форме Apartment
?