我正在尝试在我的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
关于可能出错的任何想法?
答案 0 :(得分:0)
默认值来自哪里?也许你可以在users表中向我们展示column_names。您确定要在数组中存储符号吗?
答案 1 :(得分:-1)
您最初将属性类型设置为字符串,这会导致混淆。尝试
add_column :users, :session_log, :array, default: [:username, :ip, :time, :user_agent]