我有一堆控制器,它们扩展了ApplicationController
,并且每个控制器都加载了一个不同的cancan资源。 UsersController
→@user
,PostsController
→@post
。我想知道,是否有可能在不知道实例变量名称的情况下从ApplicationController引用资源?像resource_instance
。Rails CanCan:引用来自application_controller的resource_instance
0
A
回答
1
好吧,我得到了我的最终答案,它是没有。我探索了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
等
相关问题
- 1. rails cancan自定义动作
- 2. 相当于Rails的Django application_controller
- 3. session_id在application_controller中。 Rails 3
- 4. 使用CanCan和Twitter引导的Rails教程引导
- 5. before_filter in application_controller in rails应用程序
- 6. Rails 5 - CanCan
- 7. Rails - CanCan - accessible_by
- 8. CanCan与Rails Association
- 9. CanCan Rails授权
- 10. Rails cancan load_and_authorize_resource不起作用
- 11. Ruby on Rails CanCan Gem
- 12. Rails CanCan和Scoped attr_protected
- 13. 有很多用户的Rails cancan用户
- 14. Rails和CanCan的访客用户权限
- 15. 使用Rails的Cancan身份验证
- 16. 使用CanCan的Rails授权问题
- 17. 如何使用CanCan与Rails管理员来检查所有权
- 18. 在引擎中使用CanCan。 Ability.rb示例
- 19. can not can cancan on rails 3.1
- 20. Rails - CanCan - 基本问题
- 21. Rails cancan问题与before_filter
- 22. Rails 3 Active_admin和CanCan集成
- 23. Rails + Devise + Cancan select with dynamic,dependent
- 24. Rails,CanCan和控制器
- 25. Rails,Devise,CanCan或Declarative授权
- 26. Rails 4,Devise,Omniauth,Cancan,Twitter API
- 27. 我可以删除使用Rails安装的默认application_controller吗?
- 28. 来自Rails的调用API
- 29. 来自Rabl Rails的调用Rails帮手
- 30. Devise,CanCan和ActiveAdmin on Rails应用程序
什么是你想要的代码把你的ApplicationController?这与'cancan'无关。你见过[inherited_resources](https://github.com/josevalim/inherited_resources),它的“资源”更接近你想要的。 – Leito
@Leito加载资源后,我根据资源设置了另一个实例变量(例如,许多资源都有一个company_id列,我根据resource.company设置了“@ company”)。我想在ApplicationController中这样做,所以我不必复制代码。在伪代码中,我想让ApplicationController方法说:“Cancan可以加载资源吗?如果是,请根据resource.company设置”@ company“ – Robert