Saya menggunakan Ruby 1.9.3-p448 dan Rails 3.2.13. Saya memiliki model sederhana ini dengan validasi format float:
class User
include Mongoid::Document
include Mongoid::Timestamps
field :height, type: Float
field :weight, type: Float
validates :height, presence: true, format: { with: /[-+]?[0-9]*\.?[0-9]+/ }
validates :weight, presence: true, format: { with: /[-+]?[0-9]*\.?[0-9]+/ }
end
Jika saya menjalankan kode ini:
test = User.new(height:"hi", weight:"try")
Ini memberi saya hasil berikut:
#<User _id: 51f67b49781018056b000008, created_at: nil, updated_at: nil, height: 0.0,width: 0.0>
Mengapa mongoid memberi nilai 0,0 jika saya memasukkan string? Saya mengharapkan kesalahan validasi.