231 votes

Puis-je obtenir le nom du contrôleur actuel dans la vue?

Je suis plutôt certain c'est une question stupide, mais je ne peux pas trouver la réponse.

Est-il un moyen de comprendre ce que le régulateur de courant est de l'intérieur de la vue?

Pour un exemple de pourquoi je voudrais savoir ceci: si plusieurs contrôleurs de partager la même mise en page, j'ai peut-être un rôle dans la mise en page ERB fichier dans lequel je souhaite mettre en avant la page actuelle de l'élément de menu basé sur le contrôleur.

Peut-être que c'est une mauvaise approche. Si oui, quel est le plus préféré façon de le faire?

Je suis intéressé de savoir pour obtenir le nom de l'actuel contrôleur de toute façon, si.

(Évidemment, je pourrais faire quelque chose comme @controller_name = 'users' dans chaque contrôleur; mais c'est le genre de chose Rails serait l'ai déjà fait en coulisses. Donc, je me demandais simplement si il y a un moyen intégré.)

286voto

Anubhaw Points 2820

params[:controller] contient le nom du contrôleur utilisé pour servir la vue actuelle.

276voto

alfikowalski Points 970

En outre, dans les guides Rails, il est dit:

Le hash params contiendra toujours les clés: controller et: action, mais vous devez utiliser les méthodes controller_name et action_name pour accéder à ces valeurs.

Paramètres ActionController

94voto

Thaha kp Points 1979
 #to get controller name:
<%= controller.controller_name %>
#=> 'users'

#to get action name, it is the method:
<%= controller.action_name %>
#=> 'show'


#to get id information:
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>
#=> '23'
 

référence

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X