将数据库中现有的字符串字段类型转换为数组字段类型 | Rails + PostgreSQL

Converting existing string field type to array field type in database | Rails + PostgreSQL

我在 Rails 上使用 Ruby 和 Postgresql,并有一个用于附件的字符串数据库字段。现在我支持多文件上传,需要将我的附件字符串数据库字段转换为字符串数组,以便我可以托管多个文件。

如何使用 Rails 控制台将现有的“字符串”数据库字段转换为“字符串数组”?

您没有将“字符串”数据库字段转换为“字符串数组”。您正在寻找的是序列化程序。在您的模型中执行以下操作

class Post < ApplicationRecord
  serialize :attachment, Array
end

# Try in rails console
Post.find 117
#=> #<Post id: 117, attachment: ["11.jpg", "22.jpg", "33.jpg"] ...>

您可以在保存时提供一个数组,它会将其转换为字符串并存储它,而在提取它时会将字符串转换为数组,然后 return 您将数组

您可能还想将您的列从 attachment 重命名为 attachments,因为它将包含一个数组。