34 lines
881 B
Ruby
34 lines
881 B
Ruby
# -*- encoding : utf-8 -*-
|
|
module Modules
|
|
module Models
|
|
module ActsLikeMember
|
|
extend ActiveSupport::Concern
|
|
|
|
included do |klass|
|
|
scope :not_member_of, lambda { |item|
|
|
where("
|
|
#{klass.table_name}.id NOT IN (
|
|
SELECT relations.object_id
|
|
FROM relations
|
|
WHERE (
|
|
relations.object_type = '#{klass.to_s}'
|
|
AND relations.target_type = '#{item.class.to_s}'
|
|
AND relations.target_id = #{item.id}
|
|
)
|
|
)
|
|
")
|
|
}
|
|
|
|
scope :search_order, order("CHAR_LENGTH(uname) ASC")
|
|
scope :without, lambda {|a| where("#{klass.table_name}.id NOT IN (?)", a)}
|
|
scope :search, lambda {|q| where("#{klass.table_name}.uname ILIKE ?", "%#{q.strip}%")}
|
|
|
|
end
|
|
|
|
module ClassMethods
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|