Rails错误:“无法引用数组”

时间:2017-02-14 20:05:10

标签: ruby-on-rails database

我正在尝试在我的users表中添加一列,该列在数据库中存储的数组中记录有关用户的信息。每次,我都尝试运行我做的迁移:

class AddLoggingToUsers < ActiveRecord::Migration[5.0]
  def change
    add_column :users, :session_log, :string, array: true, default: [:username, :ip, :time, :user_agent]
  end
end

然后我在控制台中收到此错误:

  -- add_column(:users, :session_log, :string, {:array=>true, :default=>[:username, :ip, :time, :user_agent]})
    rails aborted!
    StandardError: An error has occurred, all later migrations canceled:

    can't quote Array

关于可能出错的任何想法?

2 个答案:

答案 0 :(得分:0)

默认值来自哪里?也许你可以在users表中向我们展示column_names。您确定要在数组中存储符号吗?

答案 1 :(得分:-1)

您最初将属性类型设置为字符串,这会导致混淆。尝试

add_column :users, :session_log, :array, default: [:username, :ip, :time, :user_agent]