У меня есть объект, для которого я разрабатываю контроллер, который имеет много атрибутов. Однако из-за созданной мной модели данных большинство атрибутов, которые мне нужно отредактировать, сохраняются через ассоциации в других таблицах. Е.Г .: У меня есть статьи, в которых есть теги в таблице тегов (и около 20 других атрибутов, сохраненных в других таблицах). У статьи есть много других атрибутов, связанных с полиморфными ассоциациями и т. Д.
Ассоциации отлично работают и позволяют сохранять несколько записей каждого атрибута. Однако, одна вещь, которая является трудной, это упрощение действия редактирования для контроллера. Обычно вы можете просто сохранить @article = Article.find (params [: id]), и все атрибуты появятся. Это означает, что форма имеет текущие атрибуты, и человек может просто вносить изменения.
Однако для материалов, сохраненных посредством ассоциации, эти поля пусты. У меня есть решение shiv, с помощью которого я делаю, например, @ article.tag_list = @ article.tags.map (&: name). Это позволяет полю теперь отображать теги.
Однако выполнение этого для каждого атрибута добавляет так много строк к действию редактирования в контроллере. Есть ли лучший способ?
Если есть какой-то код, который я должен опубликовать, я могу - просто не сделал, потому что сейчас он грязный, и поэтому я решил вместо этого объяснить.