羊飼いのhas_many
動物。私はそれらの1つを複製しようとしています:
dolly=shepherd.animals.build(sheep.clone)
エラーが発生します:
undefined method `stringify_keys!' for #<Sheep:0xb6ce154c>
なぜ?彼女が羊飼いに関連付けられ、羊の属性を持つようにドリーを複製する別の方法は何ですか?
羊飼いのhas_many
動物。私はそれらの1つを複製しようとしています:
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)