SORU
24 Aralık 2011, CUMARTESİ


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
24 Aralık 2011, CUMARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Krumme1996

    Krumme1996

    21 EYLÜL 2009
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010
  • RocketJump

    RocketJump

    22 ŞUBAT 2006