Мне удалось заставить CanCan и Mongoid (версия 2) довольно хорошо работать вместе в приложении rails 3.Тем не менее, иногда возникают ошибки, связанные с условиями в определении разрешений (модель Ability).
Я просто поместил содержимое этой сущности в файл в config / initializers:
Хэши условий почти такие же, как с ActiveRecord:
# can only manage own account
can :manage, User, :_id => current_user.id
Я все еще работаю над тем, как использовать более сложные условия Mongoid :: Criteriaно вы всегда можете использовать блок для выполнения более сложных условий:
# can only manage own account
can :eat, Cake do
current_user.jobs.any?{ |job| job.title == 'Peasant'}
end