baa*_*h05 10 arrays string serialization activerecord ruby-on-rails
我有一个表,其中一列是文本类型.其中有一个小字符串应该序列化为数组
serialize :image_urls, Array
Run Code Online (Sandbox Code Playgroud)
有时SQL只是更快地插入数据.在这种情况下,我将插入作为字符串
["image1.jpg", "image2.jpg"]
Run Code Online (Sandbox Code Playgroud)
由于我正在插入一个字符串,我的Rails应用程序在尝试读取数据时崩溃,并显示以下错误消息:
Attribute was supposed to be a Array, but was a String
Run Code Online (Sandbox Code Playgroud)
有没有办法不抛出这个错误,或捕获它并转换数据?
我的意思是将字符串转换为数组只是一个简单的调用,所以,这应该很容易.我只是不知道在哪里或如何完成它.
从精细手册:
序列化
(attr_name, class_name = Object)
[...]序列化是通过YAML完成的.
因此该列应包含您的YAMLized版本,image_urls
但'["image1.jpg", "image2.jpg"]'
不是YAML数组.如果你想要使用原始序列化数据,那么你应该使用类似的东西
["image1.jpg", "image2.jpg"].to_yaml
# ---------------------------^^^^^^^
Run Code Online (Sandbox Code Playgroud)
生成字符串.
或者更好的是,serialize
完全停止使用单独的表格.
归档时间: |
|
查看次数: |
6804 次 |
最近记录: |