Ruby on rails 授予cancan自动创建的能力是否意味着可以访问新操作?
我有一个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操作。
创建消息
,如果它是他们的
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
的别名
请看这里: