鉴于YAML内容类似于:
---
:template: :project_change
:property: !ruby/ActiveRecord:Property
attributes:
id: '99'
name: lorem ipsum 1 dolorem - 101
status: available
如何确保在反序列化内容时不会向数据库发出任何查询?
可以忽略任何ActiveRecord
值,而不是返回。
我发现的(丑陋)解决方法是:
YAML.load(yaml_content.gsub(/(!.+ActiveRecord.+)/, ''))
将上面的YAML转换为:
---
:template: :project_change
:property:
attributes:
id: '99'
name: lorem ipsum 1 dolorem - 101
status: available
表示ActiveRecord条目成为常规哈希。
这真的很难看,如果我能具体说明我不希望返回ActiveRecord
类,那就太好了。
使用Ruby 1.9 / 2,Rails 3.2,其他宝石的最新版本。