I think in something like this:
def self.obj_list(opts = {:include => [] , :exclude => []})
# Returns an array with all objects with roles applied
# +:exclude+:: (array,string) optional object type to exclude from list
# +:include+:: (array,string) optional object type to include in list
# Example:
# Role.obj_list(:include => ["Device", "User"])
# Role.obj_list(:exclude => ["User"])
inc = opts[:include].to_a
exc = opts[:exclude].to_a
objs = []
if inc.empty?
self.all.each do |r|
unless r.authorizable_type.nil?
objs << r.authorizable_type.constantize.find(r.authorizable_id) unless exc.include?(r.authorizable_type)
end
end
else
self.all.each do |r|
unless r.authorizable_type.nil?
objs << r.authorizable_type.constantize.find(r.authorizable_id) if inc.include?(r.authorizable_type)
end
end
end
objs
end
I don't know, maybe you want to link the object and subject? If is this, here are a tutorial for that: https://github.com/be9/acl9/wiki/tutorial:-linking-object-and-subject-with-hmt