Ekleme :varsayılan => mevcut Raylar boolean true sütun
Birkaç soru (yani this one) burada varolan bir sütun için varsayılan boolean bir değer ekleme hakkında daha gördüm. change_column öneri denedim ama bu işi doğru yapamam.
Denedim:
$ change_column :profiles, :show_attribute, :boolean, :default => true
-bash: change_column: command not found verir
Ben sonra koÅŸtu:
$ rails g change_column :profiles, :show_attribute, :boolean, :default => true
...ve
$ rails change_column :profiles, :show_attribute, :boolean, :default => true
O zaman değeri nil kaldı rake db:migrate, ama koştu. Soruda elle güncellemeniz gerekir PostgreSQL yazıyor yukarıda değinmiştim. PostgreSQL kullanıyorum beri create_profiles benim göç şunları ekledi:
t.boolean :show_attribute, :default => true
Birisi burada yanlış yapıyorum bana ne söyleyebilir?
CEVAP
change_column konsolda böyle diyemezsin o yüzden ActiveRecord::Migration bir yöntemdir.
Eğer bu sütun için varsayılan bir değer eklemek isterseniz, yeni bir geçiş oluşturun:
rails g migration add_default_value_to_show_attribute
Göç oluşturulan sonra
def up
change_column :profiles, :show_attribute, :boolean, :default => true
end
def down
change_column :profiles, :show_attribute, :boolean, :default => nil
end
Sonra Çalıştır rake db:migrate.
Önceden oluşturulmuş kayıtlar için bir şey değişmeyecek. rake task oluşturmak veya sadece rails console gitmek zorunda yapmak ve tüm kayıtları güncelleştirmek.
create_profiles göç t.boolean :show_attribute, :default => true eklediğiniz zaman, eğer hiç bir şey yapmazsak normal. Zaten koştu henüz sadece göçler yürütülür. Eğer yeni bir veritabanı ile başladıysanız, o zaman gerçek için varsayılan olarak ayarlayın.

Raylar bir geçiş varolan bir tabloya s...
SQL Server sütun için varsayılan kısıt...
Raylar göçler 3: Ekleme referans sütun...
Raylar göçler: bir sütun için varsayıl...
Varsayılan değer ile yeni bir SQL sütu...