Мне просто интересно узнать правильное использование параметров [: controller] и controller.controller_name, поскольку я ищу способ получить текущий контроллер вида, например но я не уверен, что это правильно, я имею в виду, если что-то другое по производительности при использовании того или другого.rails params [: controller] vs controller.controller_name
ответ
Я бы сказал, что с помощью controller_name
в ваших представлениях немного лучше, так как вы используете названный помощник, который выдает уведомление об отказе, если он должен быть удален из Rails. params[:controller]
тесно связан с реализацией и не будет.
Несмотря на то, что в действительности его маловероятно, что Rails когда-либо удалит ключ контроллера из хэша params. – max
Из руководства [Rails] (http://guides.rubyonrails.org/action_controller_overview.html#routing-parameters): 'Хэши params всегда будут содержать ключи: controller и: action, но вы должны использовать методы имя_контроллера и action_name вместо этого, чтобы получить доступ к этим значениям. ' – rocknrollcanneverdie
На Rails 4.2.5, по крайней мере, имя_контроллера и параметры [: controller] НЕ эквивалентны.
Если у вас есть контроллер в подкаталоге приложений/контроллеров, имя_контроллера не включает в себя каталог. Например, у вас есть приложение/контроллеры/администратора/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 controller params undefined
- 2. rails controller.controller_name empty
- 3. Rails - controller.controller_name внутри представления - где задан объект контроллера?
- 4. ya2yaml vs. params
- 5. Rails 4 не может пройти Params от View до Controller
- 6. вложенности Магистральные реляционные PARAMS для потребления Rails Controller
- 7. Rspec Rails controller submit form params URI, а не hash
- 8. Rails Controller Params - пользовательский метод обновления для CanCan работает
- 9. Если оператор Rails Controller?
- 10. Rails Controller id Equals
- 11. Rails - Rspec - stub params
- 12. Rails Controller игнорирует запросы
- 13. Rails 5 Params/Strong Params issue
- 14. Apache Camel: Query Params vs Header Params
- 15. Отдельный Цитата Params vs No Quote Params?
- 16. Rails PARAMS, ошибка params.merge
- 17. Rails Controller
- 18. Rails fields_for params blank
- 19. Rails + Nokogiri: controller create
- 20. Феникс-эквивалент параметров Rails [: controller]
- 21. Playframework scala class controller vs object controller
- 22. Ruby Rails Loop in Controller
- 23. local vs core controller
- 24. Collectionview Controller vs Collectionview
- 25. AngularJS: controller vs service
- 26. NoMethodError Comments Controller - Rails 3.2
- 27. Rails Controller (события для активности)
- 28. Rails Polymorphic - controller & views
- 29. View/Controller Balance - Rails
- 30. Rails 3 params нежелательная упаковка
Что вы делаете с этой информацией? Почему вы чувствуете, что вам это нужно? – Makoto
Я лично использовал бы 'params [: controller]' и думаю, что это приемлемый подход. @Makoto это не так уж необычно - например, в моем случае использования я использую это в своем макете приложения, чтобы исключить определенные страницы из индексации Google. –