次のような YAML コンテンツがあるとします。
---
:template: :project_change
:property: !ruby/ActiveRecord:Property
attributes:
id: '99'
name: lorem ipsum 1 dolorem - 101
status: available
コンテンツを逆シリアル化するときに DB へのクエリがないようにするにはどうすればよいですか?
返される代わりに、任意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 のかなり最近のバージョンを使用。