Есть ли способ выяснить, что текущий контроллер из вида?
Для примера, почему я хотел бы знать это: если несколько контроллеров совместно используют один и тот же макет, у меня может быть часть в файле ERB макета, где я хочу выделить элемент меню текущей страницы на основе контроллера.
Может быть, это плохой подход. Если да, то какой способ сделать это предпочтительнее?
Тем не менее, мне интересно узнать, как получить имя текущего контроллера.
(Очевидно, я мог бы добавить что-то подобное @controller_name = 'users'
в каждый контроллер; но это похоже на то, что Rails уже сделал бы за кулисами. Поэтому мне просто интересно, есть ли встроенный способ.)
params
в виду. Пожалуйста, используйтеcontroller_name
вместо этогоВ Rails Guides говорится:
Параметры ActionController
Допустим, у вас есть класс CSS
active
, который должен быть вставлен в любую ссылку, чья страница в данный момент открыта (возможно, чтобы вы могли по-разному стилизовать). Если у вас естьstatic_pages
контроллер сabout
действием, вы можете выделить ссылку, как показано ниже:источник
Admin::Orders
тогдаcontroller_name
иparams[:controller]
будет"orders"
и"admin/orders"
соответственно.Admin::UsersController
самом деле имеетcontroller_name
оusers
иcontroller_path
оadmin/users
в Rails 4.1.0.ссылка
источник
controller_path
содержит путь к контроллеру, используемому для обслуживания текущего представления. (т.е.:)admin/settings
.и
controller_name
содержит имя контроллера, используемого для обслуживания текущего представления. (т.е.:)settings
.источник
Если вы хотите использовать все таблицы стилей в своем приложении, просто добавьте эту строку в application.html.erb. Вставьте его внутри
<head>
тегаТакже, чтобы указать тот же класс CSS на другом контроллере,
добавьте эту строку в
body
файл application.html.erb.Итак, теперь, например, я хотел бы изменить
p
тег в контроллере «home» и действии «index». Внутриindex.scss
файл добавляет.источник