Existe-t-il un moyen de déterminer ce qu'est le contrôleur actuel dans la vue?
Pour un exemple de pourquoi je voudrais savoir ceci: si plusieurs contrôleurs partagent la même disposition, je peux avoir une partie dans le fichier ERB de disposition où je veux mettre en évidence l'élément de menu de la page actuelle basé sur le contrôleur.
C'est peut-être une mauvaise approche. Dans l'affirmative, quelle est la façon la plus préférée de procéder?
Cependant, je suis curieux de savoir comment obtenir le nom du contrôleur actuel.
(Évidemment, je pourrais mettre quelque chose comme @controller_name = 'users'
dans chaque contrôleur; mais cela semble être le genre de chose que Rails aurait déjà fait dans les coulisses. Je me demande donc s'il y a un moyen intégré.)
params
en vue. Veuillez utiliser à lacontroller_name
placeDans les guides Rails, il est écrit:
Paramètres ActionController
Supposons donc que vous ayez une classe CSS
active
, qui devrait être insérée dans n'importe quel lien dont la page est actuellement ouverte (peut-être pour que vous puissiez styliser différemment). Si vous avez unstatic_pages
contrôleur avec uneabout
action, vous pouvez alors mettre en surbrillance le lien ainsi dans votre vue:la source
Admin::Orders
alorscontroller_name
etparams[:controller]
sera"orders"
et"admin/orders"
respectivement.Admin::UsersController
a fait uncontroller_name
deusers
etcontroller_path
deadmin/users
Rails 4.1.0.référence
la source
controller_path
contient le chemin du contrôleur utilisé pour servir la vue actuelle. (ie:)admin/settings
.et
controller_name
contient le nom du contrôleur utilisé pour servir la vue actuelle. (ie:)settings
.la source
Si vous souhaitez utiliser toutes les feuilles de style dans votre application, ajoutez simplement cette ligne dans application.html.erb. Insérez-le dans la
<head>
baliseAussi, pour spécifier la même classe CSS sur un autre contrôleur
Ajoutez cette ligne dans le
body
fichier application.html.erbDonc, maintenant, par exemple, je voudrais changer la
p
balise dans le contrôleur «home» et l'action «index». Leindex.scss
fichier intérieur s'ajoute.la source