Czy istnieje sposób, aby dowiedzieć się, jaki jest aktualny kontroler z widoku?
Na przykład, dlaczego chciałbym to wiedzieć: jeśli kilka kontrolerów współdzieli ten sam układ, mogę mieć część w pliku ERB układu, w której chcę podświetlić pozycję menu bieżącej strony na podstawie kontrolera.
Może to złe podejście. Jeśli tak, jaki jest najbardziej preferowany sposób?
Chciałbym jednak wiedzieć o tym, jak uzyskać nazwę bieżącego kontrolera.
(Oczywiście, mógłbym umieścić coś takiego @controller_name = 'users'
w każdym kontrolerze; ale wydaje się, że to coś, co Rails zrobiłby już za kulisami. Zastanawiam się tylko, czy istnieje jakiś wbudowany sposób.)
params
.controller_name
Zamiast tego użyjW przewodnikach po Railsach napisano:
Parametry ActionController
Powiedzmy, że masz klasę CSS
active
, którą należy wstawić do dowolnego linku, którego strona jest obecnie otwarta (być może, abyś mógł stylizować inaczej). Jeśli maszstatic_pages
kontroler zabout
działaniem, możesz podświetlić link w taki sposób:źródło
Admin::Orders
wtedycontroller_name
iparams[:controller]
będzie"orders"
i"admin/orders"
odpowiednio.Admin::UsersController
faktycznie macontroller_name
zusers
acontroller_path
zadmin/users
w Rails 4.1.0.odniesienie
źródło
controller_path
przechowuje ścieżkę kontrolera używaną do obsługi bieżącego widoku. (tj .:)admin/settings
.i
controller_name
zawiera nazwę kontrolera używanego do obsługi bieżącego widoku. (tj .:)settings
.źródło
Jeśli chcesz używać wszystkich arkuszy stylów w swojej aplikacji, po prostu dodaj ten wiersz w application.html.erb. Wstaw go do
<head>
taguPonadto, aby określić tę samą klasę CSS na innym kontrolerze
Dodaj ten wiersz do pliku
body
application.html.erbNa przykład teraz chciałbym zmienić
p
tag w kontrolerze „home” i akcji „index”.index.scss
Dodano plik wewnętrzny .źródło