Module: ActiveRecord::AttributeMethods::Query

Extended by:
ActiveSupport::Concern
Defined in:
lib/active_record/attribute_methods/query.rb

Overview

Active Record Attribute Methods Query

Adds query methods for attributes that return either true or false depending on the attribute type and value.

For Boolean attributes this will return true if the value is present and return false otherwise:

class Product < ActiveRecord::Base
end

product = Product.new(archived: false)
product.archived? # => false
product.archived = true
product.archived? # => true

For Numeric attributes this will return true if the value is a non-zero number and return false otherwise:

product.inventory_count = 0
product.inventory_count? # => false
product.inventory_count = 1
product.inventory_count? # => true

For other attributes it will return true if the value is present and return false otherwise:

product.name = nil
product.name? # => false
product.name = " "
product.name? # => false
product.name = "Orange"
product.name? # => true

Instance Method Summary collapse

Instance Method Details

#_query_attribute(attr_name) ⇒ Object

:nodoc:



53
54
55
56
57
# File 'lib/active_record/attribute_methods/query.rb', line 53

def _query_attribute(attr_name) # :nodoc:
  value = self._read_attribute(attr_name.to_s)

  query_cast_attribute(attr_name, value)
end

#query_attribute(attr_name) ⇒ Object Also known as: attribute?

Returns true or false for the attribute identified by attr_name, depending on the attribute type and value.



47
48
49
50
51
# File 'lib/active_record/attribute_methods/query.rb', line 47

def query_attribute(attr_name)
  value = self.public_send(attr_name)

  query_cast_attribute(attr_name, value)
end