我正在开发一个使用See code in use here以这种方式以数组形式存储模型属性的Rails 3.2应用程序:
serialize :bucket, Array
我想删除该序列化并仅存储字符串。问题在于,当我这样做时,我留下了以这种方式存储的字符串:
ruby
[62] pry(main)> bucket.inspect
=> "\"---\\n- something something\\n\""
如何将该字符串清除为something something
?我尝试使用正则表达式,但我不能形成一个合适的匹配器。这是我最接近的尝试:
bucket.scan(/\---\\n- (.*?)\\n/)
答案 0 :(得分:3)
如果您查看该方法的来源,您会看到由于Array
不响应:load
和:dump
,因此最终会使用{{1}将数据存储为字符串。因此,如果您不再希望以这种方式对其进行序列化,则可以使用该类将Coders::YAMLColumn
数据从字符串中反馈回load
,然后将数组重组为一个字符串你的选择。您也可以使用Array
,因为YAML
似乎只是通过某种类型检查来包装它:
Coders::YAMLColumn