2014-07-04 3 views
19

Ich möchte wissen, ob ich einen Standardwert zum rails g migration Befehl übergeben kann. Etwas wie:Kann ich den Standardwert an Schienen weitergeben, um Migration zu generieren?

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

, um zu generieren:

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

Antwort

17

Rails Migration Generator behandelt nicht die Standardwerte, aber nach der Generierung der Migrationsdatei sollten Sie migratio aktualisieren n-Datei mit folgendem Code

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

Sie auch diesen Link sehen können - http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

+1

Ich weiß, dass ich die Migration nach ändern kann. Ich möchte den Standardwert als Parameter am Terminal übergeben. Kontext: In einem benutzerdefinierten Generator mache ich: 'generate 'Migration add_demo_to _ # {table_name} demo: boolean" ' – Leantraxxx

2

Standard Migration Generator in Rails nicht Standardwerte handhabt, gibt es keinen Weg, um ab sofort Standardwert durch Terminal definiert angeben in der Schienenmigration.

Sie möchten unter Schritte folgen, um zu erreichen, was Sie wollen

1). Ausführen

$ rails generate migration add_disabled_to_users disabled:boolean 

2). Setzen Sie den neuen Spaltenwert auf TRUE/FALSE, indem Sie die neue erstellte Migrationsdatei bearbeiten.

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

3). Führen Sie übergenerierte Migration durch Ausführen aus.

$ rake db:migrate 
+2

Wie ich zu Deepti Kakade gesagt habe, weiß ich, dass ich die Migration nach ändern kann. Es ist nicht das, was ich gefragt habe. – Leantraxxx