I have a table with one column that is of text type.
There’s a small string in it that should be serialized as an array
serialize :image_urls, Array
There are times when SQL is just faster for inserting data.
When this is the case, I do the insert as a string
["image1.jpg", "image2.jpg"]
Since I’m inserting a string my Rails app crashes when it tries to read the data, with the following error message:
Attribute was supposed to be a Array, but was a String
Is there a way to not have this error thrown, or to catch it and convert the data?
I mean converting the string to an array is just a simple call, so, this should be easy. I just don’t know where, or how to accomplish it.
I sort of think overriding object_from_yaml, but I’m not sure where to do this work.
Am I in the right track?
From the fine manual:
So the column should contain a YAMLized version of your
image_urlsbut'["image1.jpg", "image2.jpg"]'is not a YAML array. If you want to muck around with the raw serialized data then you should use something liketo generate the string.
Or better, stop using
serializealtogether in favor of a separate table.