2011-01-20 3 views
5

मैं क्षमता वर्ग में अपने कुछ कस्टम कैनकन कार्यों को बदल रहा हूं ताकि केवल एक हैश की बजाय ब्लॉक का उपयोग किया जा सके लेकिन अब वे वास्तव में पहुंच प्रतिबंधित कर चुके हैं। अजीब चीज यह है कि निर्मित कार्यों जैसे: प्रबंधन और: बनाना, इत्यादि अभी भी ब्लॉक के साथ ठीक काम कर रहे हैं।कैनकन कस्टम क्रियाएं ब्लॉक के साथ काम नहीं कर रही हैं

पुराने

# this one works 
can :share, Project, :user_id => user.id 

नई

# this one doesn't work 
can :share, Project do |project| 
    project.users.exists?(user) 
end 

किसी को भी करने से पहले इस मुद्दे में चलाने:

यह एक उदाहरण है?

उत्तर

1

मैं आपके अवांछित व्यवहार के बारे में ज्यादा कुछ नहीं कह सकता, लेकिन शायद आपको हैश को अवरुद्ध नहीं करना चाहिए, क्योंकि ये हैंश आपको रिकॉर्ड लाने की क्षमता देते हैं। this article ध्यान से कैनकन विकी में पढ़ें।

+0

मेरा विश्वास करो, मैं ब्लॉक का उपयोग नहीं करना चाहता लेकिन ऐसा लगता है कि यह मेरे मामले में ऐसा करने का एकमात्र तरीका है। मैं प्रोजेक्ट्स और उपयोगकर्ताओं के बीच कई से कई रिश्तों में चले गए हैं, इसलिए अब मुझे एक परियोजना पर सभी उपयोगकर्ताओं को जांचना होगा, न केवल एक। – Matt

+0

हम्म, डीबगर का उपयोग करने का प्रयास करें और देखें कि क्षमता के लिए जांच करते समय कैनकन में क्या होता है। या अपने फाइल सिस्टम पर कैनकन मणि की फाइलें खोलें और संपादित करें और देखें कि डंपिंग चर द्वारा क्या पारित किया जाता है। इस तरह मैं पथ पर रहता हूं जब मैं किसी और चीज के बारे में सोच नहीं सकता। बेशक फ़ाइलों को वापस लाएं;) – Mirko

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