鉴于 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 的最新版本。