これらの関連付けを持つ Account というモデルがあります。
has_many :contracts, :dependent => :destroy
has_many :packages, :dependent => :destroy
accepts_nested_attributes_for :contracts
accepts_nested_attributes_for :packages
Account オブジェクトを破棄する前に、to_json を使用してファイルに保存します。
@account.to_json(:include => [:packages, :contracts])
罰金。(別のスクリプトで)復元しようとすると問題が発生します:
account_data = JSON.parse json
@account = Account.new account_data
これにより例外が発生します。
Package(#70193553579560) expected, got Hash(#70193548333800)
なぜこれが起こるのですか?この場合、Rails はハッシュを受け入れるべきではありませんか?
@account.save を実行した後、コントラクトとパッケージ キーをハッシュから削除して挿入する必要がありますか? これを処理するためのよりクリーンな方法を探しています:)