跳至内容 跳至搜索

Active Record Attribute Methods Query

为属性添加查询方法,根据属性类型和值返回 truefalse

对于布尔(Boolean)属性,如果值存在则返回 true,否则返回 false

class Product < ActiveRecord::Base
end

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

对于 Numeric 属性,如果值为非零数字则返回 true,否则返回 false

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

对于其他属性,如果值存在则返回 true,否则返回 false

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

实例公共方法

query_attribute(attr_name)

根据属性类型和值,为由 attr_name 标识的属性返回 truefalse

别名也为: attribute?
# File activerecord/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