Rails CanCan:引用 application_controller 中的 resource_instance
Rails CanCan: reference to resource_instance from application_controller
我有一堆扩展 ApplicationController
的控制器,每个控制器加载不同的 cancan 资源,例如UsersController
-> @user
、PostsController
-> @post
。我想知道,是否可以在不知道实例变量名称的情况下从 ApplicationController 引用资源?类似于 resource_instance
.
好的,我得到了最终答案,它是否。我探索了 cancancan、cancan 维护良好的精神 child 并且代码在那里,但并不意味着被使用最终用户。
你可以得到你想要的,它不漂亮:
self.class.cancan_resource_class.new(self).send(:resource_instance)
也就是说,请不要。 cancan_resource_class
没有记录供最终用户使用,并且 :resource_instance
受到保护,因此 send
。开发人员可以选择更改此设置并破坏您的应用程序。
如果所有的都有一个company
,它们也属于,我建议你嵌套路由,这样所有的路由都有一个:company_id
,你可以用它来获得@company
object你想要:companies/:company_id/users
,等等
我有一堆扩展 ApplicationController
的控制器,每个控制器加载不同的 cancan 资源,例如UsersController
-> @user
、PostsController
-> @post
。我想知道,是否可以在不知道实例变量名称的情况下从 ApplicationController 引用资源?类似于 resource_instance
.
好的,我得到了最终答案,它是否。我探索了 cancancan、cancan 维护良好的精神 child 并且代码在那里,但并不意味着被使用最终用户。
你可以得到你想要的,它不漂亮:
self.class.cancan_resource_class.new(self).send(:resource_instance)
也就是说,请不要。 cancan_resource_class
没有记录供最终用户使用,并且 :resource_instance
受到保护,因此 send
。开发人员可以选择更改此设置并破坏您的应用程序。
如果所有的都有一个company
,它们也属于,我建议你嵌套路由,这样所有的路由都有一个:company_id
,你可以用它来获得@company
object你想要:companies/:company_id/users
,等等