2011-02-04 11 views
37

"my_model" tablosuna bir boolean değer alanı ("is_public") eklemek istiyorum. Şu anda bu kullanabilirsiniz:Bir raylar geçişi için boolean alanı nasıl tanımlanır

class AddPublicToDream < ActiveRecord::Migration 
    def self.up 
    add_column :my_model, :is_public, :string 
    end 

    def self.down 
    remove_column :my_model, :is_public, :string 
    end 

end 

Sonra denetleyicileri içinde mymodel.is_public için "doğru" veya "yanlış" atayabilirsiniz.

Aynı efekti elde etmek için: string ile: string'i kullanabilir miyim? Dizin ile karşılaştırıldığında bazı veritabanı alanı kaydeder misiniz?

cevap

68

Evet, bunun için :boolean kullanabilirsiniz ve evet, veritabanı alanını da kaydedecektir.

+0

Numarayı arayabilmeniz gerekir. "NoMethodError: undefined method" is_public = 'için # \t /Library/Ruby/Gems/1.8/gems/activerecord-3.0.3/lib/active_record/base.rb:1008:in 'adlı kullanıcıdan şikayetçi. (irb) 'den \t metod_missing: " " – lkahtz

+0

@fmttm: Nasıl test ettiniz? – sevenseacat

+0

rake db: migrate – fl00r

18

Tür niteliğini :boolean olarak değiştirin ve yeniden rake db:migrate çalıştırın. Örneğin:

Dream.is_public? # returning true or false depending whether is set. 
+9

Teşekkür ederiz. Sizden Dream.is_public'i öğreniyorum? raylar tarafından otomatik olarak üretilir. coool ~~~ – lkahtz

+0

lol bu komik –

İlgili konular