15
我使用西納特拉與Apache和的Phusion-乘客與「經典」風格:sinatra config.ru:什麼是配置塊?
# config.ru
require 'sinatra'
configure do
....
end
require './app'
run Sinatra::Application
我要定義一些事情。在配置塊內部或外部定義它有什麼區別?
# config.ru
require 'sinatra'
# A) Defining logger here
rack = File.new("logs/rack.log", "a+")
use Rack::CommonLogger, rack
# B) Global variables here
LOGGER = Logger.new(...)
# C) Gem configuration here
DataMapper::Property::Boolean.allow_nil(false)
configure do
# A) Or defining logger here?
rack = File.new("logs/rack.log", "a+")
use Rack::CommonLogger, rack
# B) Or global variables here?
LOGGER = Logger.new(...)
# C) Or gem configuration here?
DataMapper::Property::Boolean.allow_nil(false)
....
end
require './app'
run Sinatra::Application
是否有一些一般規則應該在外面做什麼以及應該在裏面做什麼?有什麼不同?我測試了兩種變體,並且兩者似乎都工作得很好。
我知道configure
可以用來對環境這樣的反應:
configure :development do
....
end
因此,它是針對不同的環境配置有用。這個用例很明顯,但是對於每個環境的一般配置呢?我把他們放在哪裏?這只是一個風格問題嗎?
我剛剛發現[出處](http://rubydoc.info/gems/sinatra/1.3.3/Sinatra/Base.configure),和它實際上只不過是讓自己作爲一個參數而讓自己變成塊。所以這只是一個風格問題。 – Markus