Rails CanCan: reference to resource_instance from applicatio



我有一堆控制器来扩展ApplicationController,每个控制器加载不同的cancan资源,例如 UsersController -> @userPostsController -> @post .我想知道,是否可以在不知道实例变量名称的情况下从应用程序控制器引用资源?像resource_instance.

好的,我得到了最终答案,是否定的。我探索了Cancancan,Cancan维护良好的精神孩子,代码就在那里,但并不意味着最终用户使用。

你可以得到你想要的,它并不漂亮:

self.class.cancan_resource_class.new(self).send(:resource_instance)

也就是说,请不要。 cancan_resource_class没有记录供最终用户使用,并且:resource_instance受到保护,因此send。开发人员可以选择更改此设置并破坏您的应用程序。

如果所有路由都有一个company,它们也属于,我建议你嵌套路由,所以所有路由都有一个:company_id,你可以用它来获取你想要的@company对象:companies/:company_id/users等。

相关内容

最新更新