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
Ruby on rails 在rails中创建而不使用表单_Ruby On Rails - Fatal编程技术网

Ruby on rails 在rails中创建而不使用表单

Ruby on rails 在rails中创建而不使用表单,ruby-on-rails,Ruby On Rails,假设我有两个模型A和B 现在我想通过单击按钮将一些信息从A的实例复制到B的实例 有办法吗?这个过程叫做克隆对象,它的复杂性取决于你想克隆什么样的信息 如果只想克隆对象的字段,可以执行以下操作: old_object = A.find(old_object_id) new_object = B.new new_object.field_one = old_object.field_one new_object.field_two = old_object.field_two new_object

假设我有两个模型A和B

现在我想通过单击按钮将一些信息从A的实例复制到B的实例


有办法吗?

这个过程叫做克隆对象,它的复杂性取决于你想克隆什么样的信息

如果只想克隆对象的字段,可以执行以下操作:

old_object = A.find(old_object_id)
new_object = B.new

new_object.field_one = old_object.field_one
new_object.field_two = old_object.field_two
new_object.save!
但是,如果还想克隆旧对象的关联,则需要手动完成

为了论证
A
有一个
有许多
B
对象的关联称为
bees
,而
B
有许多
对象称为
sees
,这可能会有点复杂:

old_object.bees.each do |bee|
   new_bee = bee.clone
   new_bee.sees.each do |see|
      new_see = see.clone
      new_see.save!
   end
   new_object.bees.push(new_bee)
end
new_object.save!