Gibt es eine Möglichkeit, aus der Ansicht heraus herauszufinden, was der aktuelle Controller ist?
Ein Beispiel dafür, warum ich das wissen möchte: Wenn mehrere Controller dasselbe Layout verwenden, habe ich möglicherweise einen Teil in der Layout-ERB-Datei, in dem ich den Menüpunkt der aktuellen Seite basierend auf dem Controller hervorheben möchte.
Vielleicht ist das ein schlechter Ansatz. Wenn ja, was ist der bevorzugte Weg, dies zu tun?
Ich bin jedoch daran interessiert, den Namen des aktuellen Controllers so oder so zu erfahren.
(Natürlich könnte ich so etwas @controller_name = 'users'
in jeden Controller einbauen; aber das scheint so, als hätte Rails dies bereits hinter den Kulissen getan. Ich frage mich nur, ob es einen eingebauten Weg gibt.)
params
in Sicht zu verwenden. Bitte verwenden Siecontroller_name
stattdessenIn den Rails Guides heißt es:
ActionController-Parameter
Angenommen, Sie haben eine CSS-Klasse
active
, die in einen beliebigen Link eingefügt werden sollte, dessen Seite derzeit geöffnet ist (möglicherweise, damit Sie einen anderen Stil verwenden können). Wenn Sie einenstatic_pages
Controller mit einerabout
Aktion haben, können Sie den Link in Ihrer Ansicht wie folgt markieren:quelle
Admin::Orders
danncontroller_name
undparams[:controller]
wird"orders"
und"admin/orders"
jeweils.Admin::UsersController
tatsächlich eincontroller_name
vonusers
und eincontroller_path
vonadmin/users
in Rails 4.1.0.Referenz
quelle
controller_path
Enthält den Pfad des Controllers, der für die aktuelle Ansicht verwendet wird. (dh :)admin/settings
.und
controller_name
Enthält den Namen des Controllers, der für die aktuelle Ansicht verwendet wird. (dh :)settings
.quelle
Wenn Sie alle Stylesheets in Ihrer App verwenden möchten, fügen Sie diese Zeile einfach in application.html.erb hinzu. Fügen Sie es in das
<head>
Tag einUm dieselbe Klasse CSS auf einem anderen Controller anzugeben,
fügen Sie diese Zeile in die
body
Datei application.html.erb einSo möchte ich jetzt zum Beispiel das
p
Tag in 'Home'-Controller und' Index'-Aktion ändern . Innerhalb derindex.scss
Datei hinzugefügt.quelle