has_many
动物。我试图克隆其中一个:
dolly=shepherd.animals.build(sheep.clone)
我收到错误:
undefined method `stringify_keys!' for #<Sheep:0xb6ce154c>
为什么呢?什么是克隆小车的另一种方式,以便她与牧羊人联系并拥有绵羊的属性?
答案 0 :(得分:9)
dolly = shepherd.animals.build(sheep.clone.attributes)
build
要求参数是属性的哈希值。否则
dolly = shepherd.animals << sheep.clone
答案 1 :(得分:2)
ActiveRecord :: Base构造函数采用参数哈希。传递一个对象并不是很好。因此,您需要查询相关对象的属性哈希值。
dolly=shepherd.animals.build(sheep.clone.attributes)
实际上构造函数忽略了id属性,所以你可以放弃:
dolly=shepherd.animals.build(sheep.attributes)