0

这更像是一个关于如何设计我的应用程序的一部分的一般问题。目标是允许用户创建模板或任务序列的顺序。然后用户可以从另一个模型中选择哪些对象将填充模板模型的顺序。所以基本上,模板是可以重复的任务的顺序,一旦用户选择了将填充模板的其他任务。我希望用户能够重用模板以基于单个模板创建不同的排序。我在想的是创建一个看起来像这样的模板模型:

model Template
  order:string
  number_of_unique_tasks:integer

我会再有两个模型来存储任务等:

model Tasks
  has_many :list_tasks
  #some properties
model List
  has_many :list_tasks
  has_many :tasks, through: list_tasks
model ListTask
  belongs_to :lists
  belongs_to :tasks
  order:integer

所以我想使用Template模型来构建List. 任何想法将不胜感激,在此先感谢您。

4

1 回答 1

0

如果我理解正确,模板模型应该类似于列表模型。它应该有一个描述性的名称和一组任务。从模板构建列表时,应使用相同的顺序将与该模板关联的任务复制到新列表中。像这样的东西:

#table templates
# id: integer
# name: string
class Template < ActiveRecord::Base
  has_many :template_tasks, order: sequence
  has_many :tasks, through: :template_tasks

  def to_list
    list = List.new
    list.list_tasks = template_tasks.map{|t| 
      ListTask.new(task_id: t.task_id, order: t.sequence) 
    }
    list
  end
end

#table template_tasks
# id: integer
# template_id: integer
# task_id: integer
# sequence: integer
class TemplateTask < ActiveRecord::Base
  belongs_to :task
  belongs_to :template
end
于 2012-06-06T14:08:24.213 回答