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
|