2012-03-07 2 views
0

Я уверен, что это довольно простой вопрос. во всяком случае, я не нахожу правильную информацию, чтобы идти.Отношения между матерью и отцом/детьми в Rails

У меня есть 3 модели.

Пользователи - Задачи - Заметки

пользователей и задачи находятся на том же уровне, как и задачи, дети модели проектов, и они функционируют в качестве шаблона. Затем для каждого пользователя я показываю все задачи проекта и добавляю заметки. Заметки в этом случае являются детьми ОБОИХ пользователей и задач, на самом деле они являются детьми комбинации из двух.

Каков наилучший способ решить эту проблему? Я проверил полиморфные ассоциации и, похоже, не будет работать в этом случае.

Приветствия, Davide

ответ

0

Из того, что я понимаю ваши проблемы полиморфных ассоциаций именно то, что вы хотите, в том, что пользователи имеют много Notes, а задачи имеют много Notes.

Взаимосвязи будет выглядеть следующим образом

в обоих user.rb и task.rb

has_many :notes, :as => :noteable 

в note.rb

belongs_to :noteable, :polymorphic => true 

в вашей миграции создавать заметки

t.references :noteable, :polymorphic => true 

Примечание b oth Users и Tasks могут иметь Notes, а Notes могут принадлежать либо пользователю, либо задаче (или что-либо еще, которое соединяется с использованием заметного полиморфного интерфейса).

+0

Причина, по которой я говорю, что полиморфная не работает для меня, заключается в том, что КОМБИНАЦИЯ конкретного пользователя и конкретная задача могут иметь много заметок. Из моего понимания полиморфная ассоциация создается таким образом, что в записке есть либо пользователь, либо задание в качестве родителя. – Dave

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