3

鉴于 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,以及其他 gem 的最新版本。

4

0 回答 0