2016-10-23 1 views
0

J'ai ajouté une colonne à ma table via une migration, mais je ne suis pas en mesure d'accéder à la colonne ajoutée dans le fichier de migration suivant.Colonne ajoutée Non accessible dans le fichier de migration suivant

Lorsque j'exécute rake db:migrate, la migration s'interrompt, mais lorsque je l'exécute à nouveau, la migration réussit, je ne sais pas exactement ce que je fais de mal. Toute aide serait appréciée. Merci.

ci-dessous est le code où j'ajoute la colonne

**

class AddIsDispatchToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :is_dispatch, :boolean, :default=>false 
    end 
end 

**

Maintenant, quand je tente d'accéder à la colonne suivante de la migration échoue.

Le fichier de migration ultérieure a le code ci-dessous

service_member = Member.create (: is_dispatch => true)

Et voici l'erreur qu'il produit

unknown attribute: is_dispatch/Users//.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.1.12/lib/active_record/base.rb:1764:in `block in assign_attributes' 
/Users//.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.1.12/lib/active_record/base.rb:1758:in `each' 
/Users//.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.1.12/lib/active_record/base.rb:1758:in `assign_attributes' 
/Users//.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.1.12/lib/active_record/base.rb:1578:in `initialize' 
/Users//.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.1.12/lib/active_record/base.rb:508:in `new' 
/Users//.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.1.12/lib/active_record/base.rb:508:in `create' 
/Users//Desktop/RailsDevelopement//db/migrate/20161003121452_add_dispatch_services.rb:11:in `up' 
+0

Vérifiez l'ordre des migrations. La migration à laquelle la colonne doit accéder doit être appelée avant – Abhi

+0

La séquence est correcte –

+0

Quand vous dites qu'il abandonne initialement - sur quelle migration est-il en train d'avorter - est-ce celui qui ajoute la colonne ou celui qui essaie d'accéder à la colonne? Cela peut valoir la peine de mettre à jour votre question avec cette information et le code de la migration qui échoue. – David

Répondre

1

Avez-vous essayé User.reset_column_information après add_column dans la même migration.