【问题标题】:Can a Rails attribute be an array?Rails 属性可以是数组吗?
【发布时间】:2017-06-07 13:59:16
【问题描述】:

我最近了解了 Rails 5 中的 json 数据类型,它允许您将哈希存储在 PostgreSQL 数据库中。出于某种原因,我找不到 Rails 5 数据类型的完整列表。是否有任何类型的数据类型可以类似地允许您存储数组?

这样example_record.array_datatype => ["1", "2", "3"]

【问题讨论】:

标签: ruby-on-rails ruby postgresql ruby-on-rails-5


【解决方案1】:

确实如此。这是向模型添加整数和字符串数组的示例迁移:

class AddToBooks < ActiveRecord::Migration
  def change
    add_column :books, :category_ids, :integer, array: true, default: [], null: false
    add_column :books, :subjects    , :text   , array: true, default: [], null: false
  end
end

对于字符串数组,使用:text 作为类型。

我强烈建议使用空数组而不是 null 来表示“无数据”,并且此迁移可确保这一点。

【讨论】:

  • null: false 是做什么的?它使空数组而不是空数组?
  • @JoeMorano 它添加了一个数据库约束。与您最初的问题一样,谷歌是您的朋友。
  • 是的,这意味着您不能在该列中存储空值。
猜你喜欢
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 2020-01-19
  • 2023-01-17
  • 1970-01-01
相关资源
最近更新 更多