У меня есть модель Printer
, к которой я добавил логический столбец master
.Принтер belongs_to :restaurant
.Флаг master
указывает, является ли этот принтер основным принтером в этом ресторане.
У меня есть метод в модели принтера:
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 в режиме разработки.