Wie erhält man den aktuellen View-Namen aus der Layout-Vorlage in Rails?

8

Ist es möglich, den Namen der aktuell gerenderten Ansicht aus dem internen Layout abzurufen?

    
Evgenii 12.07.2012, 09:20
quelle

6 Antworten

4

Ich habe so etwas für css namespacing gemacht:

%Vor%     
Peter Ehrlich 09.07.2013, 08:18
quelle
3

Die Methode active_template_virtual_path gibt die Vorlage als Name in der folgenden Form "controller / action"

zurück %Vor%     
Bhushan Lodha 12.07.2012 10:57
quelle
3

Verwenden Sie <% __FILE__ %> , um den vollständigen Dateipfad der aktuellen Ansicht zu erhalten, aber Sie können ihn nur von innerhalb der Datei selbst verwenden, ohne einige Helfer zu schreiben

    
Clark 19.05.2014 23:03
quelle
1

Ich hatte eine ähnliche Frage. Ich habe <%= params[:controller] %> und <%= params[:action] %> gefunden, um meinen Bedarf zu erfüllen, nämlich den Controller-Namen und den Aktionsnamen als Klassen für das body-Tag hinzuzufügen.

Nur für den Fall, dass das jemandem hilft. :)

    
robyoder 01.03.2014 17:07
quelle
1

Ich verwende derzeit eine modifizierte Version von Peter Ehrlichs Lösung. Die resultierende Zeichenfolge hat die Form controller_name/view_name , z. users/new , was bedeutet, dass es später direkt an render übergeben oder für andere Zwecke geändert werden kann. Ich habe das nur mit Rails 4.2 versucht, obwohl es meines Wissens bis zum 3. x es gehen sollte.

%Vor%     
Brent Royal-Gordon 26.01.2015 02:08
quelle
0

Zu Debuggingzwecken können Sie den Edelstein 'current_template' von hier verwenden.

Dieser Edelstein prüft die Logdatei und zeigt den Dateinamen der Ansicht / Teilvorlage an.

Zum Beispiel:

Sie können diese Zeile auch einfach hinzufügen

<%= "#{'tail log/development.log'}".scan(/\s[a-z]+\/\S+/) %>

zu Ihrem Layout / application.html.erb.

    
kansiho 03.09.2017 09:17
quelle

Tags und Links