2014-07-04 14 views
19

Desidero sapere se è possibile passare un valore predefinito al comando rails g migration. Qualcosa di simile:Posso passare il valore predefinito ai binari per generare la migrazione?

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

al fine di generare:

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

risposta

17

Rails generatore di migrazione non gestisce i valori predefiniti, ma dopo la generazione del file di migrazione è necessario aggiornare migratio n file con codice seguente

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

è anche possibile vedere questo link - http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

+1

So che posso modificare la migrazione dopo. Voglio passare il valore predefinito come parametro sul terminale. Contesto: in un generatore personalizzato che sto facendo: 'genera" migrazione add_demo_to _ # {table_name} demo: boolean "' – Leantraxxx

2

generatore di migrazione di default in Rails non gestisce i valori di default, non v'è alcun modo per aggirare fin d'ora per specificare il valore predefinito definito attraverso il terminale nella migrazione delle rotaie.

volete seguire la procedura al fine di ottenere ciò che si vuole

1). Execute

$ rails generate migration add_disabled_to_users disabled:boolean 

2). Imposta il nuovo valore della colonna su TRUE/FALSE modificando il nuovo file di migrazione creato.

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

3). Esegui sopra la migrazione generata eseguendo.

$ rake db:migrate 
+2

Come ho detto a Deepti Kakade, so che posso modificare la migrazione dopo. Non è quello che ho chiesto. – Leantraxxx