gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 中将数组持久保存到数据库?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:16 26 4
gpt4 key购买 nike

我正在尝试将一个数组的数组保存到我在 Rails 中的 SQLite 数据库中。

现在,我有一个可以容纳这样一个数组的对象,并且实例似乎可以毫无问题地保存。但是,它显然没有保存到数据库中——当我在与创建数组的 View 不同的 View 中调用 My_Object.array 上的函数时,结果为 nil 并且不起作用。

例如:

class My_Object < ActiveRecord::Base
attr_accessor :array
end

当我调用 My_Object.new(:array => [ [1, 2, 3], [4, 5, 6] ]) 时,一切似乎都正常工作,但我不能在其他任何地方访问 :array 属性,结果都是 nil。

有什么想法吗?

最佳答案

首先在您的表中创建一个名为array 的文本列。然后使用 serialize :

class My_Object < ActiveRecord::Base
serialize :array
end

这将使用 YAML 自动序列化您的数组,并在您将其从数据库中拉出时自动解压缩。

不过您应该重新考虑您的设计。您将无法对数据库中的序列化数据执行任何操作,尤其是,您将无法在查询中使用它。 YAML 将只是一个不透明的 blob,它进入数据库并返回,数据库将无法用它做任何其他事情。如果您确定数据库永远不需要查看 array 内部,那么继续使用 serialize,否则您将需要设置额外的表来存储您的数组数据。

关于ruby-on-rails - 如何在 Ruby on Rails 中将数组持久保存到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998199/

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