À l'aide de Rails de sérialiser pour enregistrer hash à la base de données

Je suis essayez d'enregistrer un hachage de la cartographie des id pour un certain nombre de tentatives dans mon application rails. Ma migration de la base de données pour accueillir cette nouvelle colonne:

class AddMultiWrongToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :multi_wrong, :string
  end

  def self.down
    remove_column :users, :multi_wrong
  end
end

Dans mon modèle que j'ai:

class User < ActiveRecord::Base 
 serialize :multi_wrong, Hash
end

Mais lorsque j'utilise la console rails pour tester ça en faisant:

user = User.create()
user.multi_wrong = {"test"=>"123"}
user.save

La sortie est faux. Ce qui ne va pas ici?

  • Est-il quelque chose à l'utilisateur.les erreurs après avoir tenté de l'enregistrer?
  • Dans l'avenir, vous pouvez utiliser le bang méthode (sauver!!!) pour soulever une exception à la règle et affiche un message d'erreur.
  • Meilleure réponse utilise maintenant un JSON de la colonne stackoverflow.com/a/21397522/1536309
InformationsquelleAutor cmwright | 2011-07-14