使用Ruby On Rails复制对象属性3

时间:2011-02-16 15:36:43

标签: ruby ruby-on-rails-3

我正在将模型中的对象属性复制到另一个模型中;

 @estimate = Estimate.find(params[:estimate_id])
 @invoice = Invoice.create(@estimate.attributes)

使用此副本,它只是复制模型属性, (估算副本为新发票)但估算模型和发票模型与“项目”模型具有HABTM关系。

如何用Estimate和它的Item一起创建新的@invoice对象?困惑...

更新:

  • 估计:has_and_belongs_to_many:items(estimate_items表)           accepts_nested_attributes_for:items
  • 发票:has_and_belongs_to_many:items(invoices_items表)           accepts_nested_attributes_for:items
  • 项目:belongs_to:估计           belongs_to:invoice

感谢。

1 个答案:

答案 0 :(得分:5)

我对这究竟是什么意思有点困惑。您是否希望同时复制attrs并在连接表中创建记录以同时关联两者?如果是这样,我应该采用我认为的技巧(未经测试)......

@estimate = Estimate.find(params[:estimate_id])
@invoice = Invoice.create(@estimate.attributes.merge(:items => @estimate.items))