Spec-Zone.ru › Ruby on Rails 7.1

класс ActiveRecord::Type::Float

Родитель:
Значение
Включенные модули:
ActiveModel::Type::Helpers::Numeric

Тип плавающей точки 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

Публичные методы экземпляров

type() Показать исходный код
# File activemodel/lib/active_model/type/float.rb, line 39
def type
  :float
end
type_cast_for_schema(value) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API