2010-09-23 17 views

Odpowiedz

9

udało mi się dostać CanCan i Mongoid (wersja 2), aby pracować razem całkiem dobrze na aplikacja szyny 3. Nadal dostaję błędy tu i tam związane z warunkami w definicji uprawnień (model umiejętności).

ja po prostu umieścić zawartość tego GIST do pliku w config/inicjalizatorów:

mieszań stan są prawie takie same jak w ActiveRecord:

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

Nadal pracuję nad używaniem bardziej zaawansowanych warunków Mongoid :: Criteria, ale zawsze możesz użyć bloku, aby wykonać bardziej złożone warunki:

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

Dziękuję. Mam nadzieję, że rozszerzenia zostaną dodane do przyszłej wersji gem –

+0

Nie ma za co. Mongoid jest niesamowity, podobnie jak CanCan. Spróbuję stworzyć działającą poprawkę dla CanCan, aby to zachowanie było zawarte w bibliotece bez potrzeby dodawania czegokolwiek. Przy okazji dokonałem kilku istotnych aktualizacji istoty, które pozwalają na skomplikowane warunki haszu. Polecam używanie najnowszej wersji gist, ponieważ wersja, którą miałem wcześniej, spowodowała kilka trudnych do wykrycia, ale znaczących błędów. – bowsersenior

+1

Moje rozszerzenia uczyniły z niego Cancan. Najnowsza wersja github obsługuje teraz Mongoid: https://github.com/ryanb/cancan/pull/172 i wersja 1.5 z rubygems będą również miały wsparcie Mongoid. – bowsersenior