класс ActiveRecord::Type::Float
Тип плавающей точки Active Model
Тип атрибута для значений чисел с плавающей точкой. Он зарегистрирован под ключом :float.
class BagOfCoffee include ActiveModel::Attributes attribute :weight, :float end
Значения преобразуются с помощью их to_f метода, за исключением следующих строк:
-
Пустые строки преобразуются в
nil. -
"Infinity"преобразуется вFloat::INFINITY. -
"-Infinity"преобразуется в-Float::INFINITY. -
"NaN"преобразуется вFloat::NAN.bag = BagOfCoffee.new
bag.weight = “0.25” bag.weight # => 0.25
bag.weight = “” bag.weight # => null
bag.weight = “NaN” bag.weight # => Float::NAN
Публичные методы экземпляра
# File activemodel/lib/active_model/type/float.rb, line 39 def type :float end
# File activemodel/lib/active_model/type/float.rb, line 43 def type_cast_for_schema(value) return "::Float::NAN" if value.try(:nan?) case value when ::Float::INFINITY then "::Float::INFINITY" when -::Float::INFINITY then "-::Float::INFINITY" else super end end
Вызывает метод суперкласса
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.