Zugriff auf den App-Namen innerhalb einer Rails-Vorlage beim Erstellen von Rails-App

8

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

    
danengle 11.03.2009, 06:34
quelle

8 Antworten

8

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.

    
danengle 11.03.2009, 21:15
quelle
15

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%     
Mike Fischer 14.11.2010 01:21
quelle
5

Verwenden Sie in Rails 3 das Attribut app_name .

Siehe die Dokumentation für Rails :: Generators :: AppGenerator .

    
Daniel Kehoe 23.04.2011 06:49
quelle
3

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:

%Vor%

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:

%Vor%

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?

    
Mike Woodhouse 11.03.2009 06:49
quelle
3

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

verfügbar war %Vor%

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

hinzugefügt %Vor%

und dann ls ausgeführt, um eine Liste der verfügbaren Instanzvariablen anzuzeigen

%Vor%     
mriddle89 09.03.2015 21:25
quelle
1

RAILS_ROOT gibt Ihnen den absoluten Pfad zu Ihrem Root-Verzeichnis. Ihr App-Name ist der Teil der Zeichenkette nach dem letzten '/', den Sie auf verschiedene Arten verwenden können.

EDIT: Nicht genug, um den Job zu erledigen. Mike und Dan bügeln es unten aus.

    
Abie 11.03.2009 06:47
quelle
0

Ich glaube, der bevorzugte Weg ist jetzt, Rails.root und nicht mehr RAILS_ROOT zu nennen. Anscheinend hat jemand auf Planetenschienen eine Abneigung gegen Großbuchstaben oder einen ähnlichen wichtigen Grund. Ab 2.3.5 scheinen beide zu funktionieren.

    
RonanOD 20.05.2010 16:52
quelle
0

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.

    
Straff 29.03.2013 07:15
quelle

Tags und Links