gpt4 book ai didi

ruby-on-rails - rails : How to handle "Attribute was supposed to be a Array, but was a String" error?

转载 作者:行者123 更新时间:2023-12-04 02:15:41 24 4
gpt4 key购买 nike

我有一个表格,其中一列是文本类型。
里面有一个小字符串,应该被序列化为一个数组

serialize :image_urls, Array 

有时,SQL 插入数据的速度更快。
在这种情况下,我将插入作为字符串
["image1.jpg", "image2.jpg"]

由于我正在插入一个字符串,我的 Rails 应用程序在尝试读取数据时崩溃,并显示以下错误消息:
Attribute was supposed to be a Array, but was a String

有没有办法不抛出这个错误,或者捕获它并转换数据?

我的意思是将字符串转换为数组只是一个简单的调用,所以,这应该很容易。我只是不知道在哪里,或如何实现它。

我有点想覆盖 object_from_yaml,但我不确定在哪里做这项工作。
我在正确的 rails 上吗?

最佳答案

来自 fine manual :

serialize(attr_name, class_name = Object)
[...] The serialization is done through YAML.



因此,该列应包含您的 image_urls 的 YAML 化版本。但是 '["image1.jpg", "image2.jpg"]'不是 YAML 数组。如果你想处理原始序列化数据,那么你应该使用类似的东西
["image1.jpg", "image2.jpg"].to_yaml
# ---------------------------^^^^^^^

生成字符串。

或者更好,停止使用 serialize完全赞成单独的表。

关于ruby-on-rails - rails : How to handle "Attribute was supposed to be a Array, but was a String" error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com