0

これは、私のアプリの一部をどのように設計するかについての一般的な質問です。目標は、ユーザーが一連のタスクのテンプレートまたは順序を作成できるようにすることです。次に、ユーザーは、別のモデルから、テンプレート モデルの順序を満たすオブジェクトを選択できます。したがって、基本的にテンプレートは、ユーザーがテンプレートを満たす他のタスクを選択すると、繰り返すことができるタスクの順序です。ユーザーがテンプレートを再利用して、単一のテンプレートに基づいてさまざまな順序を作成できるようにしたいと考えています。私が考えていたのは、次のようなテンプレート モデルを作成することでした。

model Template
  order:string
  number_of_unique_tasks:integer

タスクなどを格納するモデルをさらに 2 つ追加します。

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

If I'm understanding correctly, the Template model should resemble the List model. It should have a descriptive name and a set of tasks. When building a list off the template, the tasks associated with that template should be copied to a new list using the same sequence. Something like this:

#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 に答える