Sinatras variabler Umfang

8

Nehmen Sie den folgenden Code:

%Vor%

Ich möchte name und all diese Variablen für das gesamte Skript sowie für die Ansichten verfügbar machen. Ich habe versucht, sie zu globalen Variablen zu machen, aber keine Würfel.

    
Ethan Turkeltaub 25.01.2010, 21:39
quelle

4 Antworten

9

Es könnte nicht der "sauberste" Weg sein, es zu tun, aber es sollte funktionieren:
- & gt; Ссылка :)

Einstellung:

%Vor%

bekommen:

%Vor%     
Marc Seeger 25.01.2010, 21:47
quelle
9

Machen Sie sie zu Konstanten. Sie sollten es trotzdem sein, oder? Sie werden sich nicht ändern.

Machen Sie eine Konstante, indem Sie sie in Großbuchstaben schreiben.

Lesen Sie diesen Artikel zu Ruby-Variablenbereichen, wenn Sie weitere Probleme haben. Ссылка

Eine weitere saubere Option kann eine Config-Klasse sein, bei der die init-Methode die YAML lädt und dann die Variablen einrichtet.

Viel Spaß. @melden Sie mich, wenn Sie Ihr neues Blog fertig haben (ich vermute, das ist es, wozu es da ist).

    
FluffyJack 25.01.2010 22:17
quelle
5

Aus der Sinatra README :

Zugreifen auf Variablen in Vorlagen

Vorlagen werden im selben Kontext wie Routen-Handler ausgewertet. Instanzvariablen, die in Route-Handlern festgelegt sind, sind direkt über Templates zugänglich:

%Vor%

Oder geben Sie einen expliziten Hash der lokalen Variablen an:

%Vor%

Dies wird normalerweise verwendet, wenn Vorlagen als Teilbereiche innerhalb anderer Vorlagen gerendert werden.

Eine dritte Option wäre, Accessoren für sie als Hilfsmethoden einzurichten. (Welche auch in der gesamten Anwendung und den Ansichten verfügbar sind.)

    
SFEley 11.05.2010 18:32
quelle
1

was auch funktioniert:

%Vor%

Vergessen Sie aber nicht, den Server nach dieser Änderung neu zu starten

    
standup75 01.02.2012 22:43
quelle

Tags und Links