2017-02-14 32 views
0

我想添加在我的用戶表中的一個列中,該列記錄了有關用戶在數據庫中存儲的數組中的用戶信息。每一次,我嘗試運行此遷移我做:Rails錯誤:「無法引用數組」

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

發現默認選項導致問題,爲什麼這是明確的? – RushRed

回答

-1

您最初將屬性類型設置爲字符串,這導致了混淆。嘗試

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

其中默認值來自哪裏?也許你可以向我們展示你的用戶表中的column_names。你確定要在數組中存儲符號嗎?