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