Module: Metabolical::AR4Scopes

Defined in:
lib/metabolical/scopes.rb

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/metabolical/scopes.rb', line 3

def self.included(klass)
  class_eval do
    klass.send :scope, :with_meta,      lambda {|k| joins(:metas).where("meta_data.key" => k) }
    klass.send :scope, :with_metas,     lambda { include(:metas) }
    klass.send :scope, :with_meta_data, lambda{|k, v| where({"meta_data.key" => k, "meta_data.data" => v.to_yaml}).joins(:metas) }
    klass.send :scope, :without_meta,   lambda{|k|
      joins("left join meta_data md on md.metabolized_id = #{klass.table_name}.#{klass.primary_key} and md.metabolized_type = '#{klass.to_s}' and md.key = '#{k}'").where("md.metabolized_id is null")
    }
  end
end