Метод по умолчанию 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

0 ответов

Другие вопросы по тегам