我正在使用带有Apache和Phusion-Passenger的Sinatra,具有“经典”风格:
# 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因此,它对不同的环境配置很有用。这个用例很清楚,但是每个环境的通用配置又如何呢?我该把它们放在哪里?这仅仅是风格问题吗?
发布于 2013-01-19 17:00:27
这首先是环境的问题,其次是风格的问题。你把你的配置放在哪里没有区别。
如果你把代码放到一个块中,它确实会让你的代码更具可读性(IMHO)。此外,它还允许您添加基于环境的选项,然后将这些选项放入各自的块中。
总而言之,这取决于你:)
https://stackoverflow.com/questions/14409349
复制相似问题