新手问题 怎么处理数据对象的复制

xiaoxiao · 2013年06月05日 · 最后由 Rei 回复于 2013年06月05日 · 2213 次阅读

有两张表,一张元件表 (component),一张供应商表 (supplier),一个元件可能有多个供应商供应,两者是一对多的关系。元件表字段有 name,供应商表字段有 company,component_id。每次添加一个元件都要选择供应商,相对于要创建一条供应商的数据。我的操作是 由于供应商表要创建一条新的数据,首先从供应商这张表中找到所选的供应商,在逐个将各个字段复制给新数据,只是 component_id 这个不同。就相当于如下: supplier=Supplier.new supplier.company=xx ..... supplier.save

由于逐个字段的复制虽然能实现,但是比较麻烦,有没有直接就整体复制的方法比如@a=@b这样的,

supplier = Oj.load(component.to_json)
supplier[:component_id] = supplier['id']

Supplier.create(supplier).save

amoeba is a ruby gem to allow the copying of ActiveRecord objects and their associated children, configurable with a DSL on the model.

https://github.com/rocksolidwebdesign/amoeba

http://apidock.com/rails/ActiveResource/Base/clone

ryan = Person.find(1)
not_ryan = ryan.clone
not_ryan.new?  # => true
需要 登录 后方可回复, 如果你还没有账号请 注册新账号