У меня есть два разных расчета для моей модели для двух разных полей. Перед сохранением.
Class Event < ActiveRecord::Base
#some relations
before_save :method1, unless: :some_field_1?
before_save :method2, unless: :some_field_2?
def method1
some_field_1 = some_other_field / 2
end
def method2
some_field_2 = some_field_1 / 3
end
end
Проблема, с которой я сталкиваюсь, заключается в том, что some_field_1 имеет значение null при вызове метода2. Я предполагаю, что объявление обратных вызовов before_save, как это делаю я, неправильно.
- Второе значение before_save перекрывает первое?
- Выполняются ли обратные вызовы в том же порядке, в котором они объявлены?
Я знаю, что могу объединить два метода в один без условных выражений и решения проблем, но я бы предпочел иметь условные обратные вызовы. И я хочу знать, как правильно это сделать. Документы не очень ясно об этом.
Большое спасибо!
ИЗМЕНИТЬ
Для дальнейшего использования. Код был в порядке. Проблема была где-то еще (в БД)!