سؤال

Have somebody tried to rewrite CanCan ActiverRecordAddtions for Mongoid http://github.com/ryanb/cancan/blob/master/lib/cancan/active_record_additions.rb

Regards, Alexey Zakharov

هل كانت مفيدة؟

المحلول

I've managed to get CanCan and Mongoid (version 2) to work together pretty well on a rails 3 app. Still get some errors here and there related to conditions in the permission definition (the Ability model).

I just put the contents of this gist into a file in config/initializers:

The condition hashes are almost the same as with ActiveRecord:

# can only manage own account
can :manage, User, :_id => current_user.id

I'm still working on how to use more advanced Mongoid::Criteria conditions, but you can always use a block to do more complex conditions:

# can only manage own account
can :eat, Cake do
  current_user.jobs.any?{ |job| job.title == 'Peasant'}
end

نصائح أخرى

I know it's an old one, but for those who search mongoid and cancancan integration, you could try official mongoid adapter

For cacancan gem version >2.0 there's separate gem cancacan-mongoid

Bear in mind that this gem status is "in development", but still it's working pretty well and build passing

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top