p = product.dup.update_attributes(name: "The latest thing")
上面的代码创建(并保存)product
对象的副本,其中一个属性已更改。
如何检索新创建记录的ID?变量p
仅返回true
。
答案 0 :(得分:2)
这里的问题是p等于返回update_attributes(如果更新成功则为true,否则为false)
你应该这样做:
product_copy = product.dup # copies the product into a new one, stocked in variable product_copy
product_copy.update_attributes(name: "The latest thing")
product_copy # => your Product object
替代方案:
product_copy = product.dup
product_copy.name = "The latest thing"
product_copy.save
答案 1 :(得分:1)
它返回true
,因为update_attributes
是最后一个被评估的方法。因此,为p
分配了update_attributes
方法的值,该方法可以是true
或false
。
p = product.dup
p.update_attributes(name: "The latest thing")
p.id