2017-02-14 1 views
0

J'essaie d'ajouter dans une colonne dans ma table des utilisateurs qui enregistre des informations sur l'utilisateur dans un tableau stocké dans la base de données. Chaque fois, je tente d'exécuter cette migration j'ai fait:Rails erreur: "ne peut pas tableau tableau"

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

je puis obtenir cette erreur dans la console:

-- 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 

Toutes les idées sur ce qui pourrait aller mal?

+0

Trouvé que l'option par défaut est à l'origine du problème, aucune explication quant à pourquoi? – RushRed

Répondre

-1

Vous avez d'abord défini le type d'attribut en tant que chaîne, ce qui provoque la confusion. Essayez

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

D'où proviennent les valeurs par défaut? Peut-être pourriez-vous nous montrer les column_names dans votre table d'utilisateurs. Êtes-vous sûr de vouloir stocker des symboles dans le tableau?