1

羊飼いのhas_many動物。私はそれらの1つを複製しようとしています:

dolly=shepherd.animals.build(sheep.clone)

エラーが発生します:

undefined method `stringify_keys!' for #<Sheep:0xb6ce154c>

なぜ?彼女が羊飼いに関連付けられ、羊の属性を持つようにドリーを複製する別の方法は何ですか?

4

2 に答える 2

9
dolly = shepherd.animals.build(sheep.clone.attributes)

build引数は属性のハッシュである必要があります。さもないと

dolly = shepherd.animals << sheep.clone
于 2009-11-27T15:59:22.217 に答える
2

ActiveRecord::Base コンストラクターはパラメーター ハッシュを受け取ります。オブジェクトを渡すだけでは十分ではありません。したがって、問題のオブジェクトの属性ハッシュを照会する必要があります。

dolly=shepherd.animals.build(sheep.clone.attributes)

実際、コンストラクターは id 属性を無視するため、次の方法で回避できます。

dolly=shepherd.animals.build(sheep.attributes)
于 2009-11-27T15:59:59.903 に答える