أين أضع التعليمات البرمجية في سيناترا (روبي إطار الشبكة) التي أريد فقط أن تنفيذ مرة واحدة؟
سؤال
وأنا لا أعرف إذا كان هذا هو السؤال روبي أو سؤال سيناترا، لأنني جديدة على حد سواء. لا يعمل التعليمات البرمجية التالية، وأنا أفهم لماذا، لأن my_variable الأول هو المحلي إلى كتلة لها. أنا فقط لا أعرف بناء الجملة من أجل الحصول على ذلك الحق.
require 'rubygems'
require 'sinatra'
configure do
my_variable = "world"
end
get '/' do
"Hello " + my_variable
end
وEDIT1 - الأعمال التالية، ولكن بعد ذلك أعتقد أنا في حيرة من أمري الغرض السليم للكتلة تكوين
.require 'rubygems'
require 'sinatra'
my_variable = "world"
get '/' do
"Hello " + my_variable
end
المحلول
require 'rubygems'
require 'sinatra'
set :my_variable, "world"
get '/' do
"Hello " + settings.my_variable
end
نصائح أخرى
وكتلة تكوين هو فقط لتهيئة التطبيق ذات الصلة. اذا كان هذا ما هو عليه، يجب أن تغلف ذلك مناسبا:
require 'sinatra'
configure do
set :my_option, "world"
end
get '/' do
"Hello #{options.my_option}"
end
وثمة طريقة أخرى هي:
require 'rubygems'
require 'sinatra'
@my_variable="world"
get '/' do
"Hello " + @my_variable
end
وأود أن تعيين متغير الدرجة - على سبيل المثال. @@my_variable
- داخل كتلة تكوين. وجود كتلة تكوين لرمز الذي تريد تشغيله عند بدء التشغيل، لذلك وضع الخاص بك متغير يجعل لها معنى. تطبيق سيناترا الخاص بك هو فئة فرعية من Sinatra::Base
، وذلك باستخدام متغير فئة في هذا الوضع يبدو مناسبا.