Метод по умолчанию Activerecord ведет себя по-разному в рельсах 4.2.9 и 4.1.9 "autosave_associated_records_for_#{expression.name}"
Действия по воспроизведению
Я переносил мое приложение rails с rails 4.1.9 на 4.2.9 . Я переопределил следующий метод в моей модели
def autosave_associated_records_for_#{expression.name} end Исходный метод в хранилище rails В моем случае у меня есть модель Entity, связанная с моделью Product
class Entity < ActiveRecord::Base
has_many :products, through: :fo_entity_products
accepts_nested_attributes_for :products
private
def autosave_associated_records_for_products
#validation logic goes here
#not triggering this part after rails upgrade
end
end
Идея состоит в том, чтобы предотвратить создание продукта несколько раз с одним и тем же именем. Это работало нормально с рельсами 4.1.9 и моими спецификациями, где зеленый. После перехода на rails 4.2.9, это, кажется, не вызывает или может вызывать после создания. Я не нашел обходного пути для этого. Могу ли я узнать, есть ли изменение в вызове этого метода после обновления или какой-либо обходной путь для этого?
Ожидаемое поведение
Я ожидал, что не создам новый продукт с тем же именем, но после обновления он создает новый продукт.
System configuration
Rails version: 4.2.9
Ruby version: 2.2.4