Spec-Zone.ru › Ruby on Rails 8.1

class ActiveRecord::Type::Float

Подключённые модули:
ActiveModel::Type::Helpers::Immutable, ActiveModel::Type::Helpers::Numeric

Тип 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.

Открытые методы экземпляра

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

Spec-Zone.ru

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