不要反序列化ActiveRecord YAML.load-ing

时间:2013-07-24 02:48:15

标签: ruby-on-rails ruby activerecord deserialization yaml

鉴于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,其他宝石的最新版本。

0 个答案:

没有答案