web-dev-qa-db-fra.com

Puis-je transmettre la valeur par défaut à Rails Generating?

Je veux savoir si je peux transmettre une valeur par défaut à la commande Rails g migration. Quelque chose comme:

 $ Rails generate migration add_disabled_to_users disabled:boolean:false #where false is default value for disabled attribute

afin de générer:

class AddDisabledToUsers < ActiveRecord::Migration
  def change
    add_column :users, :disabled, :boolean, default: false
  end
end
25
Leantraxxx

Vous ne pouvez pas: https://guides.rubyonrails.org/active_record_migrations.html#column-modifiers

null et default ne peuvent pas être spécifiés via la ligne de commande.

16
Benj

Le générateur de migration Rails ne gère pas les valeurs par défaut, mais après la génération du fichier de migration, vous devez le mettre à jour avec le code suivant. 

add_column :users, :disabled, :boolean, default: false

vous pouvez également voir ce lien - http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

22
Deepti Kakade

Le générateur de migration par défaut dans Rails ne gère pas les valeurs par défaut, il n’existe pour l’instant aucune possibilité de spécifier une valeur par défaut définie via un terminal dans la migration Rails.

vous souhaitez suivre les étapes ci-dessous afin de réaliser ce que vous voulez

1). Exécuter 

$ Rails generate migration add_disabled_to_users disabled:boolean

2) Définissez la valeur de la nouvelle colonne sur TRUE/FALSE en modifiant le nouveau fichier de migration créé.

class AddDisabledToUsers < ActiveRecord::Migration
  def change
    add_column :users, :disabled, :boolean, default: false
  end
end

3) Exécuter la migration générée ci-dessus en exécutant.

$ rake db:migrate
3
Subhash Chandra

Rails 3.2 ne semble prendre en charge aucun type de modificateur de type de ligne de commande basé sur http://guides.rubyonrails.org/v3.2/migrations.html

La documentation de Rails 4.1 fait référence à modificateurs de type mais la documentation de Rails 3.2 ne mentionne pas le mot "modificateur" de la page.

0
Andrew Grimm