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

Does granting cancan ability to create automatically imply access to new action?

我有一个康康的能力,说用户可以 create Message 如果它是他们的

can [:create], [Message] do |message|
  message.user_id == user.id && message.conversation.sender_id == user.id
end

这按预期工作,但令人惊讶的是,此 rspec 测试用户是否可以访问消息的 new 操作失败:

it 'A user should not be able to access their own message new action' do
  expect(ability).to_not be_able_to(:new, message)
end

所以用户 可以 访问他们消息的 new 操作。为什么是这样?访问 create 操作是否也意味着访问 new?还是我在某处误解或犯了错误?

:new:create

的别名

看这里:

https://github.com/CanCanCommunity/cancancan/wiki/Action-Aliases