我只是很好奇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 controller.controller_name empty
- 4. Rails params(url_params vs form_data)
- 5. find_by_id(params [:subject_id])vs where(:id => params [:subject_id])。
- 6. Collectionview Controller vs Collectionview
- 7. Rails - Rspec - stub params
- 8. AngularJS:$ watch vs controller save()
- 9. 「controller as」vs isolate scope
- 10. Unpermited params rails 5.1.1
- 11. 如何在params [:comments]記錄中添加params [:controller]?
- 12. Rails controller aliasing
- 13. rails-controller-testing Gem
- 14. Rails Routing:Scoped controller
- 15. Rails 4&Controller動作
- 16. 與指針PARAMS VS參考PARAMS
- 17. 單引號Params vs無引號Params?
- 18. Rails params escape/unescape +
- 19. Rails 3 - Params question
- 20. Rails params解釋?
- 21. rails collection_select params
- 22. Rails params問題
- 23. Rails | Session&Search Params
- 24. One view controller with multiple views vs multiple view controller in a larger view controller
- 25. 找不到'id'= in rails controller
- 26. Rails的路由,如http :: //host.com/controller-action-controller
- 27. Rails 3/Controller/Flash hash
- 28. rails3,使用params [:filename] .tempfile.path vs params [:filename] [:tempfile] .path
- 29. 錯誤PARAMS使用Rails
- 30. 使用多個複選框來更改一個字段 - rails control controller change params
你對這些信息做了什麼?你爲什麼覺得你需要它? – Makoto
我個人會使用'params [:controller]'並認爲這是可以接受的方法。 @Makoto這不是很不尋常 - 例如,在我的使用案例中,我在我的應用程序佈局中使用它來排除Google索引中的某些頁面。 –