ruby-on-rails - tutorial - ruby on rails project structure




Могу ли я получить имя текущего контроллера в представлении? (2)

Кроме того, в Rails Guides говорится:

Хеш params всегда будет содержать: контроллер и: клавиши действий, но вместо этого вы должны использовать методы имя_контроллера и имя_файла для доступа к этим значениям

Параметры ActionController

Итак, допустим, у вас есть класс CSS active , который должен быть вставлен в любую ссылку, чья страница в данный момент открыта (возможно, чтобы вы могли по-другому стилизовать). Если у вас есть static_pages контроллер с действием, вы можете выделить ссылку, как static_pages на static_pages :

<li>
  <a class='button <% if controller.controller_name == "static_pages" && controller.action_name == "about" %>active<%end%>' href="/about">
      About Us
  </a>
</li>

Есть ли способ выяснить, что текущий контроллер находится в пределах представления?

Например, почему я хотел бы это знать: если несколько контроллеров используют один и тот же макет, я могу участвовать в файле ERB-макета, где я хочу выделить элемент меню текущей страницы на основе контроллера.

Может быть, это плохой подход. Если да, то каков наиболее предпочтительный способ сделать это?

Тем не менее, мне интересно узнать о том, как получить имя текущего контроллера.

(Очевидно, что я мог бы добавить что-то вроде @controller_name = 'users' в каждом контроллере, но это похоже на то, что Rails уже сделали бы за кулисами. Поэтому мне просто интересно, есть ли встроенный способ.)


controller_name содержит имя контроллера, используемого для обслуживания текущего вида.





controller