问题描述
我有一个 cancan 能力,它说用户可以 create
a 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
的访问?还是我在某处误解或犯了错误?