Aşağıdaki kodu alın. Onlara küresel değişkenler denedim, ama zar atmadım.Sinatra Değişken Kapsamı
cevap
bunu yapmak için "en temiz" yolu olmasa gerek, fakat onları ayar seçenekleri çalışması gerektiği gibi:
->http://www.sinatrarb.com/configuration.html :)
ayarı:
set :foo, 'bar'
alma:
"foo is set to " + options.foo
Onları sabit hale getirin. Olmalı, değil mi? Değişmeyecekler.
Tüm kapaklarda yazarak bir sabit yapın. Başka sorunlarla varsa
Yakut Değişken Kapsamları üzerinde bu makaleyi okuyun. http://www.techotopia.com/index.php/Ruby_Variable_ScopeBaşka bir temiz seçenek, init yönteminin YAML'yi yüklediği ve sonra da değişkenleri ayarladığı bir yapılandırma sınıfı olabilir.
İyi eğlenceler. Yeni blogunuzu bitirdiğinizde bana cevap verin (sanırım bunun ne anlama geldiğini tahmin ediyorum). Sinatra README kaynaktan
: Templates
Şablonları
erişme değişkenler yol işleyicileri aynı kapsamında değerlendirilmiştir. Rota işleyicileri ayarlanan örnek değişkenleri şablonlar tarafından direcly erişilebilir:
get '/:id' do
@foo = Foo.find(params[:id])
haml '%h1= @foo.name'
end
Veya, yerel değişkenlerin açık bir Hash belirtin:
diğer şablonlardan içinden partials olarak şablonları oluşturulurken Bu genellikle kullanılanget '/:id' do
foo = Foo.find(params[:id])
haml '%h1= foo.name', :locals => { :foo => foo }
end
.
Üçüncü bir seçenek, yardımcı yöntemler olarak bunlara erişim sağlamaktır. (Hangi ayrıca uygulama ve görünüşler boyunca kullanılabilir.)
da işe yaradığını:
@@foo = "bar"
Ama `options` olacak kullanmak, bu değişikliğin
sonra sunucuyu yeniden unutmayın Bir uyarı atmak: Sinatra :: Base # seçenekleri kullanımdan kaldırıldı ve kaldırılacak, yerine #settings kullanın. ' Bunun yerine 'settings' kullanın. – briangonzalez