牧羊has_many
动物。我正在尝试克隆其中一个:
dolly=shepherd.animals.build(sheep.clone)
我得到错误:
undefined method `stringify_keys!' for #<Sheep:0xb6ce154c>
为什么?克隆多莉的另一种方法是什么,以便她与牧羊人相关联并具有绵羊的属性?
牧羊has_many
动物。我正在尝试克隆其中一个:
dolly=shepherd.animals.build(sheep.clone)
我得到错误:
undefined method `stringify_keys!' for #<Sheep:0xb6ce154c>
为什么?克隆多莉的另一种方法是什么,以便她与牧羊人相关联并具有绵羊的属性?
dolly = shepherd.animals.build(sheep.clone.attributes)
build
要求参数是属性的散列。除此以外
dolly = shepherd.animals << sheep.clone
ActiveRecord::Base 构造函数采用参数散列。传递一个对象并不能完全做到这一点。因此,您需要查询相关对象的属性哈希。
dolly=shepherd.animals.build(sheep.clone.attributes)
事实上,构造函数忽略了 id 属性,所以你可以逃脱:
dolly=shepherd.animals.build(sheep.attributes)