3

次のような 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 のかなり最近のバージョンを使用。

4

0 に答える 0