gpt4 book ai didi

ruby-on-rails - 在 Rails 中添加数组列

转载 作者:行者123 更新时间:2023-12-03 10:32:02 25 4
gpt4 key购买 nike

如何在 Rails 中声明数组列?

细节

我有以下型号

rails generate model User address:text

但我想要一个可以为每个用户存储多个地址的模型。以下声明给了我一个错误
rails generate model User address[]:text 

如何在 Rails 中声明数组列?

最佳答案

您可以使用以下步骤

rails g migration add_subjects_to_book subjects:text

和迁移文件:
class AddSubjectsToBook < ActiveRecord::Migration
def change
add_column :books, :subjects, :text, array: true, default: []
end
end

我们现在可以检查一下:
2.1.2 :001 > b = Book.create
(0.2ms) BEGIN
SQL (2.0ms) INSERT INTO "books" ("created_at", "updated_at") VALUES ($1, $2) RETURNING "id" [["created_at", "2014-10-17 08:21:17.870437"], ["updated_at", "2014-10-17 08:21:17.870437"]]
(0.5ms) COMMIT
=> #<Book id: "39abef75-56af-4ad5-8065-6b4d58729ee0", title: nil, created_at: "2014-10-17 08:21:17", updated_at: "2014-10-17 08:21:17", description: {}, metadata: {}, subjects: []>

2.1.2 :002 > b.subjects.class
=> Array

如果要在创建表时添加数组,可以执行以下操作
create_table :products do |t|
t.string :name, null: false
t.references :category, null: false
t.text :tags, array: true, default: []
end

注: array列受 PostgreSQL 支持

关于ruby-on-rails - 在 Rails 中添加数组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32409820/

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