Sha256: cc550be3e95b69992182c0fecb0c4b9132d274c744a2b29d897c1234d5dc6d5d

Contents?: true

Size: 860 Bytes

Versions: 24

Compression:

Stored size: 860 Bytes

Contents

require 'mongoid'

Mongoid.configure do |config|
  config.master = Mongo::Connection.new.db('testing')
end

Mongoid.database.collections.each do |coll|
  coll.remove
end

class User
  include Mongoid::Document
  field :name
  references_many :roles, :stored_as => :array

  def self.find_roles *ids     
    arr_ids = ids.flatten    
    all.to_a.select do |user|
      user.roles.to_a.any? do |role| 
        arr_ids.include?(role._id)
      end
    end
  end

  def self.get_roles(*ids)
    arr = ids.flatten
    criteria.in(:role_ids => arr).to_a
  end  

end

class Role
  include Mongoid::Document
  field :name
end

user = User.create(:name => 'Kristian')
user.roles.create(:name => 'guest')
user.save
# 
puts "user roles: #{User.first.roles.map(&:_id)}" 

role_id = user.roles.to_a.first._id

p role_id
p User.find_roles role_id
p User.get_roles role_id

Version data entries

24 entries across 24 versions & 4 rubygems

Version Path
roles_mongoid-0.4.8 sandbox/test.rb
mongoid_roles_zhd-0.1 sandbox/test.rb
roles_mongoid_zhd-0.4.8.1 sandbox/test.rb
roles_mongoid_zhd-0.4.8 sandbox/test.rb
roles_mongoid-0.4.7 sandbox/test.rb
roles_mongoid-0.4.6 sandbox/test.rb
roles_mongoid-0.4.5 sandbox/test.rb
roles_mongoid-0.4.4 sandbox/test.rb
roles_mongoid-0.4.3 sandbox/test.rb
roles_mongoid-0.4.2 sandbox/test.rb
roles_mongoid-0.4.1 sandbox/test.rb
roles_mongoid-0.4.0 sandbox/test.rb
roles_mongoid-0.3.6 sandbox/test.rb
roles_mongoid-0.3.5 sandbox/test.rb
roles_mongoid-0.3.4 sandbox/test.rb
roles_mongoid-0.3.3 sandbox/test.rb
roles_mongoid-0.3.2 sandbox/test.rb
roles_mongoid-0.3.1 sandbox/test.rb
roles_mongoid-0.2.4 sandbox/test.rb
roles_for_mongoid-0.2.3 sandbox/test.rb