Обычно можно создать связанный экземпляр модели через его родительский объект:
@child = @parent.children.build(params[:child])
Но когда мы используем STI и мы хотим сделать это, одновременно создавая его как один из подклассовсинтаксис, кажется, нарушается.Насколько я могу судить, это лучший способ сделать это (не обращая внимания на проблемы безопасности, связанные с отсутствием проверки типа по утвержденному списку):
@child = params[:type].classify.constantize.new(params[params[:type]])
@child.parent = @parent
Это лучший способ?Я использую один контроллер для построения всех различных типов подклассов, поэтому мне нужно предоставить тип в качестве параметра.