2015-05-28 3 views
-1

У меня есть модель MyModel, которая должна после создания создавать связанные записи типа MyAssociation. Мне нужно запустить код, как ниже после того, как создать на MyModel:Создать связанные записи в модели после создания

myass = MyAssociation.new 
myass.mymodel_id = self.id 
myass.save 

Что является лучшим способом для достижения этой цели?

ответ

2

Вы собираетесь использовать Rails callbacks, в данном случае after_create, который будет выполнен после успешного создания исходного объекта. Что-то вроде этого:

class MyModel 

    after_create :create_associations 

    def create_associations 
    myass = MyAssociation.new 
    myass.mymodel_id = self.id 
    myass.save 
    end 
end 
+0

Когда сохранение выполняется в этом случае, похоже, оно не сохраняется в базе данных. – steventnorris

+0

@steventnorris хорошо Я не знаю, какие проверки у вашей модели ассоциации есть, но если это не спасение, есть шанс, что проверка не удалась. попробуйте сохранить с треском, 'myass.save!' и посмотреть, не появляется ли она ошибка – MCBama

+0

Я пробовал, что без изменений – steventnorris

Смежные вопросы