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
-
#_query_attribute(attr_name) ⇒ Object
:nodoc:.
-
#query_attribute(attr_name) ⇒ Object
(also: #attribute?)
Returns
true
orfalse
for the attribute identified byattr_name
, depending on the attribute type and value.
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 |