अलोहा काम नहीं कर रही है!एक मूस वर्ग में भूमिका निभाने की भूमिका
मेरी एक भूमिका है कि मैं एक मूस क्लास में परिभाषित व्यस्त हूं जिसे एथेबल कहा जाता है जिसे अनिवार्य रूप से किसी भी वर्ग में बनाया गया है जिसे संभावित रूप से भविष्य में कुछ प्रमाणीकरण की आवश्यकता हो सकती है; ,,
package Trello::API::Roles::Authable;
use Moose::Role;
#authentication information
has key => (
is => "rw",
isa => "Str",
);
has token => (
is => "rw",
isa => "Str",
);
1;
जो भी कारण जब मैं कई अलग अलग बयानों का उपयोग कर एक वर्ग में यह रचना के लिए प्रयास करते हैं, यानी "Trello :: एपीआई :: भूमिकाओं के साथ :: लेखन-योग्य: यह एक नहीं बल्कि साधारण भूमिका है, यहाँ संपूर्णता "; या "भूमिकाएं :: लेखक" के साथ;
मैं लगातार यह एक ही त्रुटि संदेश मिलता है: You can only consume roles, Roles::Authable is not a Moose role.
किसी भी विचार क्यों यह हो रहा जा सकता है?
संपादित करें!
बस एक ओर ध्यान दें, मैं मूस :: भूमिका के लिए वास्तविक स्रोत की जाँच की है, और इस बिट देखा:
unless ($meta && $meta->isa('Moose::Meta::Role')) {
require Moose;
Moose->throw_error("You can only consume roles, "
. $role->[0]
. " is not a Moose role");
}
यह जहां त्रुटि उत्पन्न कर रहा है हो रहा है, तो यह लगभग लगता है कि किसी कारण से , जिस भूमिका को मैं कार्यान्वित कर रहा हूं वह यह नहीं बता रहा है कि यह मेटाक्लास में एक भूमिका है। हालांकि मैं गलत हो सकता था! किसी भी सहायता की सराहना की जाएगी।
एक और सुविधाजनक संपादन!
बोनस: कोड संदर्भ जिसमें नियमित रूप से कॉल किया जाता है।
package Trello::API::Resource;
use Moose;
use URI::Escape;
use LWP::UserAgent;
with 'Roles::Authable';
जो जब मैं यह कर, यह समझदारी से कोशिश करते हैं और भूमिकाओं का उपभोग करने के जानता है/Authable.pm लेकिन जो भी कारण के लिए, यह सिर्फ कार्य करने के लिए विफल रहता है!
"एकाधिक अलग-अलग बयान" से आपका क्या मतलब है? क्या आप 'ट्रेलो :: एपीआई :: भूमिकाएं :: लेखक' या 'भूमिकाओं के साथ' कर रहे हैं :: लेखक '; '? क्योंकि आप बाद के नाम के साथ कोई भूमिका नहीं दिखते हैं। – friedo
[क्या आप 'मूस' या 'कोई :: मूस' का उपयोग कर रहे हैं?] (Http://blogs.perl.org/users/sawyer_x/2012/05/priorities-when-using-anymoose-and-what-mouse- लोग-चाहिए-do.html) –
मेरा मतलब है कि मैंने कई अलग-अलग बदलावों की कोशिश की है; इस बिंदु पर, भूमिका का उपभोग करने की कोशिश करने वाली फ़ाइल ट्रेलो :: एपीआई :: संसाधन है, इसलिए यह भूमिकाओं को पहचानने लगता है :: ट्रेलो :: एपीआई :: भूमिकाएं :: लेखक के रूप में योग्य, और उस मॉड्यूल का उपभोग करने का प्रयास। इस बिंदु पर, यह पहचानने वाला नहीं है कि मॉड्यूल कहां हैं क्योंकि मैंने उन्हें वास्तविक मॉड्यूल निर्देशिका strucutre में नहीं रखा है; मैं हमेशा @INC को संशोधित कर सकता हूं लेकिन इस बिंदु पर मैं सिर्फ उत्सुक हूं कि इस तरह की भूमिका का उपभोग क्यों नहीं किया जा सकता है। – ozzmotik