class ActiveRecord::Type::Float
Тип Float модели Active Model
Тип атрибута для числовых значений с плавающей точкой. Он зарегистрирован под ключом :float.
class BagOfCoffee include ActiveModel::Attributes attribute :weight, :float end bag = BagOfCoffee.new bag.weight = "0.25" bag.weight # => 0.25 bag.weight = "" bag.weight # => nil bag.weight = "NaN" bag.weight # => Float::NAN
Значения преобразуются с помощью метода to_f, за исключением следующих строк:
-
Пустые строки преобразуются в
nil. -
"Infinity"преобразуется вFloat::INFINITY. -
"-Infinity"преобразуется в-Float::INFINITY. -
"NaN"преобразуется вFloat::NAN.
Открытые методы экземпляра
# File activemodel/lib/active_model/type/float.rb, line 40 def type :float end
# File activemodel/lib/active_model/type/float.rb, line 44 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.