Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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 如何克隆具有多个关联的 类栏_Ruby_Clone - Fatal编程技术网

Ruby 如何克隆具有多个关联的 类栏

Ruby 如何克隆具有多个关联的 类栏,ruby,clone,Ruby,Clone,您可以编写Bar.new(Bar.attributes.reject\u at(“id”,“foo\u id”)) class Bar < ActiveRecord::Base belongs_to :foo end class Foo < ActiveRecord::Base has_many :bars end Foo oldFoo = Foo.new Foo foo = Foo.new foo.bars << oldFoo.bars.all.colle

您可以编写
Bar.new(Bar.attributes.reject\u at(“id”,“foo\u id”))

class Bar < ActiveRecord::Base
  belongs_to :foo
end

class Foo < ActiveRecord::Base
  has_many :bars
end

Foo oldFoo = Foo.new

Foo foo = Foo.new
foo.bars << oldFoo.bars.all.collect { |bar| bar.clone }
foo.bars << oldFoo.bars.all.collect { |bar| Bar.new(bar.attributes) }
class Hash
 def select_at(*s_keys)
    Hash[s_keys.zip(values_at(*s_keys))]
  end

  def reject_at(*r_keys)
    select_at(keys - r_keys)
  end
end