Sha256: 996f7e3404726a15b51f3e6d6981f9b6844dfac6eae4ced27e83ca44d0323f2c

Contents?: true

Size: 1.96 KB

Versions: 8

Compression:

Stored size: 1.96 KB

Contents

class Product < ActiveRecord::Base
  # Use USD as model level currency
  register_currency :usd

  # Use money-rails macros
  monetize :price_cents

  # Use money-rails macro with multiple fields
  monetize :delivery_fee_cents, :restock_fee_cents, :allow_nil => true

  # Use a custom name for the Money attribute
  monetize :discount, :as => "discount_value"

  # Allow nil
  monetize :optional_price_cents, :allow_nil => true

  # Override default currency (EUR) with a specific one (GBP) for this field only
  monetize :bonus_cents, :with_currency => :gbp

  # Use currency column to determine currency for this field only
  monetize :sale_price_amount, :as => :sale_price,
    :with_model_currency => :sale_price_currency_code

  monetize :price_in_a_range_cents, :allow_nil => true,
  :subunit_numericality => {
    :greater_than => 0,
  :less_than_or_equal_to => 10000 },
  :numericality => {
    :greater_than => 0,
    :less_than_or_equal_to => 100,
    :message => "must be greater than zero and less than $100"
  }

  # Skip validations separately from each other
  monetize :skip_validation_price_cents, subunit_numericality: false, numericality: false, allow_nil: true

  # Override default currency (EUR) with a specific one (CAD) for this field only, from a lambda
  monetize :lambda_price_cents, with_currency: ->(_product) { Rails.configuration.lambda_test }, allow_nil: true

  attr_accessor :accessor_price_cents
  monetize :accessor_price_cents, disable_validation: true

  monetize :validates_method_amount_cents, allow_nil: true

  validates :validates_method_amount, :money => {
    :greater_than => 0,
    :less_than_or_equal_to => ->(product) { product.optional_price.to_f },
    :message => 'must be greater than zero and less than $100',
  }, allow_nil: true

  alias_attribute :renamed_cents, :aliased_cents

  monetize :renamed_cents, allow_nil: true

  # Using postfix to determine currency column (reduced_price_currency)
  monetize :reduced_price_cents, :allow_nil => true
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
money-rails-1.10.0 spec/dummy/app/models/product.rb
money-rails-1.9.0 spec/dummy/app/models/product.rb
money-rails-1.8.0 spec/dummy/app/models/product.rb
money-rails-1.7.0 spec/dummy/app/models/product.rb
money-rails-1.6.2 spec/dummy/app/models/product.rb
money-rails-1.6.1 spec/dummy/app/models/product.rb
money-rails-1.6.0 spec/dummy/app/models/product.rb
money-rails-1.5.0 spec/dummy/app/models/product.rb