Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 授予cancan自动创建的能力是否意味着可以访问新操作?_Ruby On Rails_Cancan_Cancancan - Fatal编程技术网

Ruby on rails 授予cancan自动创建的能力是否意味着可以访问新操作?

Ruby on rails 授予cancan自动创建的能力是否意味着可以访问新操作?,ruby-on-rails,cancan,cancancan,Ruby On Rails,Cancan,Cancancan,我有一个cancan功能,即用户可以创建消息,如果它是他们的 can[:create],[Message]do | Message| message.user\u id==user.id&&message.conversation.sender\u id==user.id 结束 这与预期一样有效,但令人惊讶的是,用户是否可以访问消息的new操作的rspec测试失败: it“用户不应该能够访问自己的消息新操作”do 期望(能力)。无法(:新建,消息) 结束 因此用户可以访问其消息的new操作。

我有一个cancan功能,即用户可以
创建
消息
,如果它是他们的

can[:create],[Message]do | Message|
message.user\u id==user.id&&message.conversation.sender\u id==user.id
结束
这与预期一样有效,但令人惊讶的是,用户是否可以访问消息的
new
操作的rspec测试失败:

it“用户不应该能够访问自己的消息新操作”do
期望(能力)。无法(:新建,消息)
结束

因此用户可以访问其消息的
new
操作。为什么会这样?访问
create
操作是否也意味着访问
new
?还是我在某个地方误解了或犯了错误?

:new
:create
的别名

请看这里: