阿罗哈!
我正忙于在一种叫作"可认证性"的摩斯类中定义我的角色, 基本上由任何可能在未来需要某种形式的认证的类别组成; 这是一个相当简单的角色, 这里的完整:
package Trello::API::Roles::Authable;
use Moose::Role;
#authentication information
has key => (
is => "rw",
isa => "Str",
);
has token => (
is => "rw",
isa => "Str",
);
1;
For whatever reason, when I attempt to compose it into a class using multiple different statements, i.e., with "Trello::API::Roles::Authable"; or with "Roles::Authable";
我总是收到相同的错误消息 : 您只能消耗角色, 角色 :: 可认证不是穆斯角色 。
知道为什么会发生这种事吗?
编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑
我查了穆斯的实际来源: 作用,
unless ($meta && $meta->isa( Moose::Meta::Role ) ) {
require Moose;
Moose->throw_error( "You can only consume roles, "
. $role->[0]
. " is not a Moose role" );
}
这似乎是出错发生的地方,所以,出于某种原因,我所扮演的角色似乎并不是说它是元阶级的角色。尽管我可能弄错了!任何帮助都会受到欢迎。
又一个方便的EDIT!
效益:规定例行作业的守则背景。
package Trello::API::Resource;
use Moose;
use URI::Escape;
use LWP::UserAgent;
with Roles::Authable ;
当我这样做的时候,它聪明地知道 尝试和消耗 角色/可允许的. 下午,但无论出于什么原因, 它只是没有发挥作用!