【发布时间】:2011-09-01 17:32:05
【问题描述】:
所以我有一个 Task 模型、一个 Ticket 模型和一个 Category 模型。
类别 has_many 任务 工单 has_many 任务 类别 has_many 门票 门票属于_to 类别 任务belongs_to 工单 任务所属类别
当类别链接到工单时,与类别关联的任务是工单的默认任务。因此,当为工单选择类别时,我需要将与类别关联的任务复制并关联到工单。
我想知道我是否可以在我的 Ticket 模型中做这样的事情:
after_create :duplicate_tasks_to_ticket
after_update :duplicate_tasks_to_ticket
def duplicate_tasks_to_ticket
if self.tasks.blank?
for task in self.category.tasks.all
new_task = Task.new
new_task.name = task.name
new_task.ticket_id = self.id
new_task.save
end
end
end
现在这不会引发任何错误,但它不会做任何事情。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
请问为什么
new_task.save被注释掉了? -
如果您已经将它们与类别相关联,为什么还需要将它们与工单相关联?如果您需要与任务相关联的粒度,那么只需使用该关联来获取某个类别下的所有工单。将它们捆绑在一起只会使网站变得复杂。
-
因为每次创建工单时,我都需要从类别中复制任务并将它们与工单相关联。基本上,该类别具有工单的默认任务。任务记录仅与工单或类别相关联,但不能同时与两者关联。
-
哎呀,我在复制它之前不小心把它注释掉了。我在上面改了。我的代码中没有注释掉。
标签: ruby-on-rails ruby-on-rails-3 activerecord