Existe uma maneira de descobrir qual é o controlador atual na exibição?
Para um exemplo de por que eu gostaria de saber isso: se vários controladores compartilham o mesmo layout, talvez eu faça parte do arquivo ERB do layout, onde desejo destacar o item de menu da página atual com base no controlador.
Talvez essa seja uma abordagem ruim. Em caso afirmativo, qual é a maneira mais preferida de fazer isso?
Estou interessado em saber como obter o nome do controlador atual de qualquer maneira, no entanto.
(Obviamente, eu poderia colocar algo como @controller_name = 'users'
em cada controlador; mas isso parece o tipo de coisa que o Rails já teria feito nos bastidores. Então, eu só estou me perguntando se há uma maneira embutida.)
params
em vista. Por favor, use emcontroller_name
vez dissoNos Guias do Rails, ele diz:
Parâmetros do ActionController
Então, digamos que você tenha uma classe CSS
active
, que deve ser inserida em qualquer link cuja página esteja aberta no momento (talvez para que você possa estilizar de maneira diferente). Se você tem umstatic_pages
controlador com umaabout
ação, é possível destacar o link da seguinte maneira:fonte
Admin::Orders
thencontroller_name
eparams[:controller]
será"orders"
e"admin/orders"
respectivamente.Admin::UsersController
realmente tem umcontroller_name
deusers
e umcontroller_path
deadmin/users
no Rails 4.1.0.referência
fonte
controller_path
mantém o caminho do controlador usado para servir a visualização atual. (ie:)admin/settings
.e
controller_name
mantém o nome do controlador usado para servir a visualização atual. (ie:)settings
.fonte
Se você quiser usar toda a folha de estilo em seu aplicativo, adicione esta linha em application.html.erb. Inserir dentro da
<head>
tagAlém disso, para especificar a mesma classe CSS em um controlador diferente
Adicione esta linha no arquivo
body
application.html.erbEntão, agora, por exemplo, eu gostaria de alterar a
p
tag no controlador 'home' e na ação 'index'.index.scss
Arquivo interno adiciona.fonte