Spec-Zone.ru › Ruby on Rails 7.2

класс ActiveRecord::Type::Decimal

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

Тип десятичных чисел Active Model

Тип атрибута для представления десятичных чисел с высокой точностью. Он зарегистрирован под ключом :decimal.

class BagOfCoffee
  include ActiveModel::Attributes

  attribute :weight, :decimal
end

Numeric экземпляры преобразуются в BigDecimal экземпляры. Любые другие объекты преобразуются с помощью их метода to_d, за исключением пустых строк, которые преобразуются в nil. Если метод to_d не определен, объект преобразуется в строку с помощью to_s, а затем преобразуется с помощью to_d.

bag = BagOfCoffee.new

bag.weight = 0.01
bag.weight # => 0.1e-1

bag.weight = "0.01"
bag.weight # => 0.1e-1

bag.weight = ""
bag.weight # => nil

bag.weight = :arbitrary
bag.weight # => nil (the result of `.to_s.to_d`)

Decimal точность по умолчанию составляет 18 и может быть настроена при объявлении атрибута:

class BagOfCoffee
  include ActiveModel::Attributes

  attribute :weight, :decimal, precision: 24
end

Константы

BIGDECIMAL_PRECISION

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

type() Показать исходный код
# File activemodel/lib/active_model/type/decimal.rb, line 49
def type
  :decimal
end
type_cast_for_schema(value) Показать исходный код
# File activemodel/lib/active_model/type/decimal.rb, line 53
def type_cast_for_schema(value)
  value.to_s.inspect
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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