2014-11-18 10 views
18

Yani, erkek veya dişi seçmek için bir boolean kullanarak bir formum var. Doğrulama kullandığımda: boolean alanları için varsayım geri döndüğünde, cinsiyet boş bırakılamaz! Wehn Validates bölümünü kaldırırım, DB'ye doğru veya yanlış olarak geçmesine izin verir. Onu sıfır bırakmaz. Bunun bir sorun olduğunu düşünüyorum çünkü t/f kullanıyorum ama nedenini anlayamıyorum. İşte benim modeliRails validates_presense, boolean'da doğrulanmıyor mu?

class Visit < ActiveRecord::Base 
    validates :user_id, :first_name, :last_name, :birthdate, :gender, 
     presence: true 
end 

Ve bu alanda

<%= f.select :gender, 
    [['Male',false],['Female',true]], :value => false, 
    label: "Gender" %> 

cevap

37

boole alanlarda varlığı doğrulama kullanamazsınız, çünkü benim görünümüdür. Bunun yerine dahil kullanın. Burada belgelere bakın: http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

Eğer (gerçek değerler true ve false) bir boolean alanın varlığını, sen validates_inclusion_of kullanmak isteyeceğiniz doğrulamak istiyorsanız: FIELD_NAME, içinde: [doğru, yanlış] .).

+0

Bu çözüldü! Teşekkürler! Yanlış anladığım kadar kolay bir şey olacağını düşündüm. – keith

+6

Rails> 3 'validates: attribute_name, dahil: {in: [true, false]}' –