Class: ActiveModel::Type::Decimal
- Includes:
- Helpers::Numeric
- Defined in:
- activemodel/lib/active_model/type/decimal.rb
Overview
Attribute type for decimal, high-precision floating point numeric representation. It is registered under the :decimal
key.
class BagOfCoffee
include ActiveModel::Attributes
attribute :weight, :decimal
end
bag = BagOfCoffee.new
bag.weight = "0.0001"
bag.weight # => 0.1e-3
Numeric instances are converted to BigDecimal instances. Any other objects are cast using their to_d
method, if it exists. If it does not exist, the object is converted to a string using to_s
, which is then coerced to a BigDecimal using to_d
.
Decimal precision defaults to 18, and can be customized when declaring an attribute:
class BagOfCoffee
include ActiveModel::Attributes
attribute :weight, :decimal, precision: 24
end
Constant Summary collapse
- BIGDECIMAL_PRECISION =
18
Instance Attribute Summary
Attributes inherited from Value
Instance Method Summary collapse
Methods included from Helpers::Numeric
Methods inherited from Value
#==, #assert_valid_value, #binary?, #cast, #changed?, #changed_in_place?, #deserialize, #force_equality?, #hash, #initialize, #map, #serializable?, #serialize, #value_constructed_by_mass_assignment?
Constructor Details
This class inherits a constructor from ActiveModel::Type::Value