【发布时间】:2013-01-02 18:41:28
【问题描述】:
我正在使用带有 Apache 的 Sinatra 和具有“经典”风格的 Phusion-Passenger:
# config.ru
require 'sinatra'
configure do
....
end
require './app'
run Sinatra::Application
我想定义一些东西。在 configure 块内部和外部定义它有什么区别?
# 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
所以它对不同的环境配置很有用。这个用例很清楚,但是每个环境的通用配置呢?我把它们放在哪里?这只是风格问题吗?
【问题讨论】:
标签: ruby configuration sinatra passenger