Как отобразить форму для подмножества связанных записей, некоторые из которых еще не существуют?

У меня есть задачи и пользователи. Когда пользователь завершает задачу, я создаю Завершение, в котором есть поле, в котором пользователь указывает, сколько времени он потратил. Мне нужна форма, которая показывает все задачи с их статусом завершения и атрибутом time_spent. При отправке существующие дополнения должны быть обновлены и созданы новые. Я бы хотел сделать это в Formtastic, если возможно, но я Я буду доволен базовым решением Rails 3.

class Completion < ActiveRecord::Base
  belongs_to :task
  belongs_to :user

  # attribute time_spent
end

class User < ActiveRecord::Base
  has_many :completions
  has_many :tasks, :through => :completions
end    

class Task < ActiveRecord::Base
  belongs_to :milestone
  has_many :completions
  has_many :users, :through => :completions
end

Дополнительный аспект заключается в том, что я хочу показать только определенный набор задач, например, принадлежащих Milestone. Должен ли я иметь форму на контроллере Milestone, которая отправляет ее контроллеру завершения?

class Milestone < ActiveRecord::Base
  has_many :tasks
  has_many :completions, :through => :tasks
end

ОБНОВЛЕНИЕ Я искал несколько дней и нашел много мертвых концов . Это Несколько объектов в форме Rails близко, но требует, чтобы все связывающие объекты уже существовали.

Что отличает этот вопрос, так это то, что некоторые ссылки еще не существуют и не существует единой модели для вложений ссылок. Например, в сообщении Райана Дейгла Nested Object Forms ) I ' Я сделал эту работу в форме для редактирования всех возможных Завершений для пользователя, но мне нужно отредактировать подмножество возможных Завершений в одной форме. Нужно ли мне создавать избыточный объект MilestoneCompletions, который has_many Completions и own_to User? Может ли ActiveModel has_many ?

5
задан Community 23 May 2017 в 11:45
поделиться