Ich rampons rails 2.3 Vorlagen und möchte in der Lage sein, den Namen der App als eine Variable in meiner Vorlage zu verwenden, also wenn ich ...
rails appname -m path/to/template.rb
... Ich möchte auf appname in template.rb zugreifen können. Weiß jemand, wie man das macht?
Danke
Danke für die Antworten. Mike Woodhouse, du warst so nah dran. Es stellt sich heraus, dass alles, was Sie tun müssen, um auf den Appnamen innerhalb Ihrer Rails-Vorlage zuzugreifen, ist ...
%Vor%Die Variable @root wird als Erstes beim Initialisieren von Vorlagen erstellt und ist in Ihren Rails-Vorlagen verfügbar. RAILS_ROOT funktioniert nicht.
Ich habe nach einer Antwort auf diese Frage gesucht. Leider scheint die obige Antwort (@root) in Rails 3 nicht zu funktionieren.
Hier sind die Variablen, auf die Sie in Rails 3 App-Vorlagen zugreifen können (noch einfacher):
%Vor% Verwenden Sie in Rails 3 das Attribut app_name
.
Siehe die Dokumentation für Rails :: Generators :: AppGenerator .
Es gibt wahrscheinlich einen einfacheren Weg, aber das scheint zu funktionieren:
%Vor%EDIT: Bleah - das wurde einmal abgelehnt, und der Wähler hatte Recht. Wenn ich die Frage genauer gelesen hätte, hätte ich die Elemente 2.3 und template.rb bemerkt. Entschuldigung.
Ich vermute, dass RAILS_ROOT nicht an dem Punkt erstellt wurde, an dem Sie den App-Namen benötigen. Betrachtet man jedoch ruby\lib\ruby\gems.8\gems\rails-2.2.2\bin\rails
, ist fast das erste, was passiert:
Es wird am Ende des Skripts verwendet, damit ein Chdir und Freeze bei Bedarf ausgeführt werden kann - ich wusste nicht, dass ich bei der Erstellung einfrieren kann, also habe ich zumindest etwas Neues gelernt. ARGV
wird dann hier verwendet:
was uns schnell an den Ort bringt, wo ARGV wirklich behandelt wird:
%Vor%wo ich sehe
%Vor%Irgendwo hier unten wird wahrscheinlich das Templating behandelt. Ich fürchte, ich bin in einem sehr frühen Stadium mit 2.3 und Templating ist ein Bereich, den ich noch nicht angeschaut habe.
Hilft das besser als meine erste Anstrengung?
Ich stieß auf ein ähnliches Problem, keine der oben aufgeführten Variablen war mir in Rails 4 verfügbar. Ich fand, dass @name
während der Ausführung von
Innerhalb der Vorlage sind weitere nützliche Variablen verfügbar. Sie können selbst sehen und spielen, indem Sie pry
verwenden. In meiner Vorlage habe ich
und dann ls
ausgeführt, um eine Liste der verfügbaren Instanzvariablen anzuzeigen
Ich habe einen Fehler bekommen
%Vor%ruby 1.9.2p290, Schienen 3.2.11, Thor 0.18.0, Windows
aber mit Schienen 2.3 Generator:
%Vor%(kann nicht sicher sein, ob dieser Fehler unter Schienen 3.0.9 oder früher passiert ist) Geänderte Klassendefinition zu:
%Vor%was dann gegeben hat:
Für den Namen der erforderlichen Argumente wurde kein Wert angegeben
Ich habe dann einen 'Namen' ("etwas" unten) hinzugefügt:
%Vor%was den ursprünglichen Fehler ergab, also fügte ich hinzu:
%Vor%zu der Klasse und alles war gut.
Tags und Links ruby ruby-on-rails templates