我有一个名为 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 之后,我是否必须从哈希中删除合同和包密钥并插入它们?我正在寻找一种更清洁的方法来处理这个问题:)