У меня есть модель с обратным вызовом before_update
.Из моего понимания before_update
вызывается, когда update_attributes
вызывается на экземпляре модели.Я предполагаю, что если обратный вызов before_update
вернет false
, запись не будет обновлена.Каждый раз, когда я звоню update_attributes
, запись сохраняется, даже если before_update
возвращает false
.Есть ли у вас какие-либо идеи, как запретить обновление записи, если before_update
возвращает false
?Вот что я попробовал в моем файле user.rb:
class User < ActiveRecord::Base
validates :first_name, :last_name, :presence => true
before_update do
false
end
end
Вот что я попробовал в консоли rails:
u = User.new(:first_name=>"John", :last_name => "Doe")
=> #<User id: nil, first_name: "John", last_name: "Doe", created_at: nil, updated_at: nil>
u.update_attributes(:first_name=>nil)
=> false
u.changed?
=> true
u
=> #<User id: nil, first_name: nil, last_name: "Doe", created_at: nil, updated_at: nil>