2017-07-23 2 views
1

J'ai eu le même problème pendant un mois et je ne trouve pas de solution.Ajouté colonne dans Rails, les données ne sont pas enregistrées

Chaque fois que j'ajoute une colonne à ma base de données, la colonne n'enregistre pas les informations. Je peux y transmettre des informations sous ma forme, mais cela ne reviendra jamais.

Les validations renvoient une erreur, comme si ce champ du formulaire était vide.

J'ai expérimenté avec db: rollback, drop/create/migrate, et autres.

Voici ma première migration, tout fonctionne bien:

class CreateRequests < ActiveRecord::Migration[5.0] 
    def change 
    create_table :requests do |t| 
     t.string :library 
     t.string :librarian 
     t.string :program 
     t.string :email 
     t.string :phone 
     t.string :date 
     t.string :time 

     t.timestamps 
    end 
    end 
end 

Voici mes deux migrations ajouté:

class AddAddressColumnToRequests < ActiveRecord::Migration[5.0] 
    def change 
    add_column :requests, :address, :string 
    end 
end 

et

class AddConfirmationColumnToRequests < ActiveRecord::Migration[5.0] 
    def change 
    add_column :requests, :confirmation, :boolean 
    end 
end 

Cela a été ma bête noire. Laissez-moi savoir quoi d'autre à fournir. Merci.

+3

pouvez-vous télécharger votre request_controller.rb erreur possible en paramètre fort – widjajayd

Répondre

3

Assurez-vous que vous autorisez address & confirmation dans les paramètres forts. Le code devrait ressembler à:

private 
# Using a private method to encapsulate the permissible parameters is 
# a good pattern since you'll be able to reuse the same permit 
# list between create and update. Also, you can specialize this method 
# with per-user checking of permissible attributes. 
def request_params 
    params.require(:request).permit(:library, :librarian, :program, :email, :phone, 
            :date, :time, :age, :address, :confirmation) 
end