2013-05-10 2 views
6

मैं कर रहा हूँ: प्रबंधन: सभी इसे ओवरराइडसंभव है CanCan कर सकते हैं: प्रबंधित करें: सभी एक या अधिक विधि को छोड़कर?

can :manage, :all if user.role == 'admin' 

can :approve, Anuncio do |anuncio| 
    anuncio.try(:aprovado) == false 
end 

मेरी दूसरी विधि क्योंकि काम नहीं करता। घोषणा करने का कोई तरीका स्वीकृति को छोड़कर सभी का प्रबंधन कर सकता है? और अंदर स्वीकृति के अंदर मैं सिर्फ

can :approve, Anuncio do |anuncio| 
    user.role == 'admin' && anuncio.try(:aprovado) == false 
end 

बेहतर समाधान क्या है?

+0

रूबी एन लॉस Carriles: ') – Flauwekeul

उत्तर

14

इसे एक और तरीके से करने का प्रयास करें, cancan wiki पर देखें। प्रयास करें:

can :manage, :all if user.role == 'admin' 

cannot :approve, Anuncio do |anuncio| 
    anuncio.try(:aprovado) 
end 
+0

मैं विकि में और अधिक ध्यान देना चाहिए, बहुत बहुत शुक्रिया उत्तर के लिए! =) –

+0

आपका स्वागत है, क्या आप इसे वोट दे सकते हैं और स्वीकृति दे सकते हैं? :) – Lucas

+0

बेशक !! मैं इसे पहले से ही करूँगा! –

संबंधित मुद्दे