के अलावा नामस्थान में load_and_authorize_resource मैं अपने रेल एप्लिकेशन में अनुमतियों के लिए कैनकन का उपयोग कर रहा हूं जिसमें मैंने कुछ सामान्य रूप कार्यक्षमता के लिए अपना इंजन बनाया है। मैं अपने सिस्टम में अनुमतियों को लॉक करना चाहता हूं ताकि उपयोगकर्ता स्वतंत्र रूप से मेरे इंजन नियंत्रकों के कार्यों तक पहुंच न सकें। अधिकांश नियंत्रकों के लिए, ये नियंत्रक, केवल 7 REST क्रियाओं का उपयोग करते हैं, इसलिए मैं प्रत्येक नियंत्रक के शीर्ष पर कैनकन के load_and_authorize_resource
का उपयोग करना चाहता हूं।कैनकन: मेनएप
हालांकि, जब मैं इस तरह मेरे कोड लिखने:
module MyEngine
class FormController < ApplicationController
load_and_authorize_resource
...
end
end
मैं इस त्रुटि मिलती है:
uninitialized constant Form
मेरा अनुमान है कि load_and_authorize_resource
में स्वत: लोडर मेरी MainApp नाम स्थान के लिए, बंधा हुआ है और यह नहीं पहचानता कि मैं इसे एक अलग नामस्थान में बुला रहा हूं, और MyEngine::Form.find(params[:id])
की बजाय Form.find(params[:id])
जैसे कॉल करता है।
यदि ऐसा है, तो मैं इसे कैसे ठीक कर सकता हूं? यह एक बड़ा सौदा नहीं है क्योंकि authorize!
अभी भी ठीक से काम करता है, इसलिए मैं व्यक्तिगत रूप से प्रत्येक क्रिया में प्रमाणीकरण को परिभाषित कर सकता हूं, लेकिन अगर मैं load_and_authorize_resource
विधि का उपयोग करने में सक्षम था तो यह बहुत साफ महसूस करेगा।
संभावित डुप्लिकेट [कैनकन का उपयोग करके नामित और नेस्टेड नियंत्रकों को अधिकृत करना] (http://stackoverflow.com/questions/12334367/authorizing-namespaced-and-nested-controllers-using-cancan) –