У меня есть модель Printer
, к которой я добавил булевский столбец master
. Принтер belongs_to :restaurant
. Флаг master
указал, является ли этот принтер основным принтером этого ресторана.rails callback before_create broken after_validate works
У меня есть метод в модели принтера:
def set_master_on_create
if self.restaurant.printers.empty?
self[:master] = true
else
self[:master] = false
end
end
и установить эту функцию обратного вызова: before_create :set_master_on_create
Если я запускаю этот метод как before_create
затем создать новый принтер не будет выполнена. Если я изменю обратный вызов на after_validation
, создание нового объекта будет безупречно работать, даже с опцией :on => :create
.
Удаляет ли Rails объект, поэтому я не могу больше изменять значения после определенной точки, что приведет к появлению Rollback
? Любая помощь оценивается.
Я нахожусь на Rails 3.2.2 и sqlite в режиме dev.
ничего себе. это было быстро, и это работает. ты жжешь!! большое спасибо :) – patrickdet