我只是很好奇params [:controller]和controller.controller_name的正确用法,因为我正在寻找一种方法来获取视图的当前控制器但我不确定哪个是正确的,我的意思是如果在使用这个或那个时有不同的表现。rails params [:controller] vs controller.controller_name
回答
我想说在你的视图中使用controller_name
会更好一些,因为你使用的是一个命名助手,如果它将从Rails中删除,它将发出detaachiation通知。 params[:controller]
与实施紧密结合,不会。
尽管实际上Rails永远不会从params散列中删除控制器密钥, – max
从[Rails指南](http://guides.rubyonrails.org/action_controller_overview.html#routing-parameters):'params散列将始终包含:controller和:action键,但您应该使用方法controller_name和action_name改为访问这些值.' – rocknrollcanneverdie
On Rails 4.2.5至少,controller_name和params [:controller]是不等价的。
如果您在应用程序/控制器的子目录中有控制器,controller_name不包含该目录。例如,假设你有应用程序/控制器/管理/ users_controller.rb(类管理:: UsersController),你会得到这样的:
params[:controller] => 'admin/users'
controller_name => 'users'
下面是从ActionPack的-4.2.5的方法定义:
def self.controller_name
@controller_name ||= name.demodulize.sub(/Controller$/, '').underscore
end
name.demodulize
是这里的罪魁祸首。
- 1. Rails current_page?与controller.controller_name
- 2. call_user_func_array vs $ controller - > $ method($ params)?
- 3. Rails - Rspec - stub params
- 4. Unpermited params rails 5.1.1
- 5. Rails controller aliasing
- 6. Rails 4&Controller动作
- 7. 单引号Params vs无引号Params?
- 8. Rails params escape/unescape +
- 9. Rails | Session&Search Params
- 10. Rails 3 - Params question
- 11. One view controller with multiple views vs multiple view controller in a larger view controller
- 12. 找不到'id'= in rails controller
- 13. Rails 3/Controller/Flash hash
- 14. rails3,使用params [:filename] .tempfile.path vs params [:filename] [:tempfile] .path
- 15. 的Rails:基于PARAMS
- 16. Ruby on rails get#params
- 17. rails active_link_to在params上运行的gem
- 18. Rails 3 params多余的包装
- 19. 从PARAMS阅读[] Rails中
- 20. Rails搜索[params]错误
- 21. Rails:使用params重定向
- 22. Rails更新PARAMS使用Javascript
- 23. Rails:哪里定义了“params”?
- 24. Rails的网址助手PARAMS
- 25. Rails的形式PARAMS问题
- 26. Rails的合并同类PARAMS
- 27. rails 5 User.find(params [:user_id])nill
- 28. ruby on rails params not being
- 29. find_by_product_id(params [:id])vs find_by(params [:product_id])有什么区别
- 30. 哈希params vs url params,什么时候用哪个?
你对这些信息做了什么?你为什么觉得你需要它? – Makoto
我个人会使用'params [:controller]'并认为这是可以接受的方法。 @Makoto这不是很不寻常 - 例如,在我的使用案例中,我在我的应用程序布局中使用它来排除Google索引中的某些页面。 –