Как мне обслуживать данные из ассоциаций объекта в рельсовых формах? - PullRequest
0 голосов
/ 06 января 2012

У меня есть объект, для которого я разрабатываю контроллер, который имеет много атрибутов. Однако из-за созданной мной модели данных большинство атрибутов, которые мне нужно отредактировать, сохраняются через ассоциации в других таблицах. Е.Г .: У меня есть статьи, в которых есть теги в таблице тегов (и около 20 других атрибутов, сохраненных в других таблицах). У статьи есть много других атрибутов, связанных с полиморфными ассоциациями и т. Д.

Ассоциации отлично работают и позволяют сохранять несколько записей каждого атрибута. Однако, одна вещь, которая является трудной, это упрощение действия редактирования для контроллера. Обычно вы можете просто сохранить @article = Article.find (params [: id]), и все атрибуты появятся. Это означает, что форма имеет текущие атрибуты, и человек может просто вносить изменения.

Однако для материалов, сохраненных посредством ассоциации, эти поля пусты. У меня есть решение shiv, с помощью которого я делаю, например, @ article.tag_list = @ article.tags.map (&: name). Это позволяет полю теперь отображать теги.

Однако выполнение этого для каждого атрибута добавляет так много строк к действию редактирования в контроллере. Есть ли лучший способ?

Если есть какой-то код, который я должен опубликовать, я могу - просто не сделал, потому что сейчас он грязный, и поэтому я решил вместо этого объяснить.

1 Ответ

0 голосов
/ 06 января 2012

То, что вы хотите, - это «загрузить» ассоциации - это просто означает заполнить ассоциации вместе с базовым объектом при загрузке.Ознакомьтесь с разделом «Готовая загрузка ассоциаций» на этой странице.

...