在rails中使用一对多复制实体



这是一个新手问题。

我在rails中有一对多的关系,认为项目有许多任务。我想为用户提供为新项目重新创建项目和任务的能力(考虑入职员工,然后使用相同的任务)。因此,在每个项目记录上,添加一个Duplicate按钮。当点击时,我将创建一个新项目,其中更改了一些属性,并为该项目重新创建所有任务。

我的问题是一般性的,我该做什么,在哪里?我知道rails提供了*。重复功能。这能放进模型里吗?控制器吗?什么才是正确的方法呢?

谢谢!

这将是Project类中一个很好的方法。

class Project
has_many :tasks
def duplicate
p = Project.create(name: "Copy of #{ name }")
tasks.each do |t|
p.tasks.create(name: t.name)
end
p
end

然后,要使用它,

new_project = existing_project.duplicate

deep_cloneable是什么?

deep_clone方法支持几个选项,可以通过传递选项哈希来指定。没有选项,行为与ActiveRecord的dup方法相同。

project.deep_clone(include: :tasks)

相关内容

  • 没有找到相关文章

最新更新