Как применить область к ассоциации при использовании fields_for? - PullRequest
8 голосов
/ 17 июня 2010

У меня есть проект, имеющий много задач, и каждая задача принадлежит человеку.

В моей форме редактирования проекта я разрешаю редактировать существующие задачи и добавлять новые с помощью формы вложенных объектов (* 1003)*http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes):

<% project_form.fields_for :tasks do |task_form| %>

Я хочу загружать связанные объекты Task Person, когда fields_for запрашивает задачи из базы данных, но я не могу найти решение. Возможно ли это? В модели Project я мог бы определить свой has_many: tasks с опцией: include, но я бы предпочел этого избежать, поскольку мне не нужно загружать объекты Person при работе с задачами проекта в целом.

На данный момент я создал вторую ассоциацию has_many: tasks_include_person с соответствующим acceptpts_nested_attributes_for и использовать его в моих fields_for. Это работает, но я бы предпочел не создавать такую ​​конкретную ассоциацию, как эта.

1 Ответ

27 голосов
/ 17 июня 2010

Вы можете передать второй параметр в fields_for, который является объектом или коллекцией для визуализации.Например:

project_form.fields_for :tasks, project_form.object.tasks.all(:include => :person) do |task_form|
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...