Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 允许现有用户在项目管理工具中“分叉”项目_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 允许现有用户在项目管理工具中“分叉”项目

Ruby on rails 允许现有用户在项目管理工具中“分叉”项目,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在设计一个项目管理应用程序,我希望我的用户能够“分叉”数据库中的现有项目。例如,@user1将创建一个项目,@user2可能想要修改该项目,因此@user2将单击一个选项来“分叉”它。 当这种情况发生时,@user2的现有项目几乎是重复的,除非他/她能够修改它的内容 我认为嵌套属性可能会起作用,但我认为这不是正确的方法 有什么建议吗?你应该使用这个方法。 从页面: 被复制的对象没有指定id,并被视为新记录。请注意,这是一个“浅”副本,因为它只复制对象的属性,而不复制其关联。“深度”拷贝的范围

我正在设计一个项目管理应用程序,我希望我的用户能够“分叉”数据库中的现有项目。例如,@user1将创建一个项目,@user2可能想要修改该项目,因此@user2将单击一个选项来“分叉”它。 当这种情况发生时,@user2的现有项目几乎是重复的,除非他/她能够修改它的内容

我认为嵌套属性可能会起作用,但我认为这不是正确的方法

有什么建议吗?

你应该使用这个方法。 从页面:

被复制的对象没有指定id,并被视为新记录。请注意,这是一个“浅”副本,因为它只复制对象的属性,而不复制其关联。“深度”拷贝的范围是特定于应用程序的,因此由应用程序根据需要实现。dup方法不保留在| on |创建的| updated | u时间戳


简而言之,@project.dup将构建一个新的项目对象,其所有参数与@project相同,除了-id、created_at、updated_at字段@user2可以修改这个新构建的对象,然后保存它。这模仿了fork功能。

您的意思是希望user2有一个独立的副本吗?那么fork只是一种基于其他人的项目快速启动的方法。或者您希望user2将其视为自己的项目,但一个用户所做的更改将被所有用户看到?