Создание представления для многих ко многим с дополнительными свойствами - PullRequest
0 голосов
/ 21 марта 2012

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

Примерно так выглядит модель:

class Project < ActiveRecord::Base
  has_many :project_stages
  has_many :stages, :through => :project_stages
end

class Stage < ActiveRecord::Base
  has_many :project_stages
  has_many :projects, :through => :project_stages
end

class ProjectStage < ActiveRecord::Base
  belongs_to :project
  belongs_to :stage
end

Моя первая реализация представления просто использовала Formtastic для отображения списка флажков для каждого проекта, чтобы позволить пользователю проверять каждый этап по мере его завершения.

К сожалению, теперь модель стала немного более сложной, с завершением_даты и завершением_комментария для каждого этапа_проекта.

Я не уверен, как переписать представление, чтобы отображать флажок для каждого этапа,вместе с полями Завершение_даты и завершение_комментария для этого этапа.

Я также думаю, что мне нужно исправить метод обновления, чтобы любые идентификаторы, которые не проверялись, эти отношения уничтожались?

У меня былпросмотрите документ Formtastic вместе с обычными поисками в Google, и я не могу найти шаблон для achieving то, что я пытаюсь сделать.

Буду очень признателен за любые указатели в правильном направлении.

Заранее благодарен за любые ansers, которые вы можете предоставить.

1 Ответ

0 голосов
/ 21 марта 2012

Сделать очень много для многих пользователей UX сложно.Особенно, когда отношения имеют свои собственные свойства, как и в вашем случае (extension_date и complete_comment).

Я предлагаю использовать форму jQuery с Ajax для создания / обновления / удаления отношений для данного экземпляра модели.

В этом railscast показано, как добавить бинарный стиль (он есть или нет) отношения многие ко многим.Но когда отношение имеет атрибуты, вам нужен способ «открыть» отношение, чтобы изменить атрибуты.

Вы также должны решить, как будут отображаться отношения.Опять же, есть много вариантов.

Например, вы можете открыть диалоговое окно jQuery , когда пользователь нажимает на имя отношения.В этом диалоговом окне можно будет обновить и удалить связь.

...