Tôi đang sử dụng Sinatra với Apache và Phusion-hành khách với phong cách "cổ điển":sinatra config.ru: khối cấu hình là gì?
# config.ru
require 'sinatra'
configure do
....
end
require './app'
run Sinatra::Application
Tôi muốn xác định một số điều. Sự khác biệt giữa việc xác định nó bên trong khối cấu hình hoặc bên ngoài là gì?
# 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
Có một số quy tắc chung nên làm bên ngoài và những gì nên được thực hiện bên trong? Sự khác biệt là gì? Tôi đã thử nghiệm cả hai biến thể, và cả hai dường như làm việc tốt như nhau.
Tôi biết configure
có thể được sử dụng để phản ứng về môi trường như thế này:
configure :development do
....
end
Vì vậy, nó rất hữu ích cho các cấu hình môi trường khác nhau. Trường hợp sử dụng này rõ ràng, nhưng về cấu hình chung cho mọi môi trường thì sao? Tôi đặt chúng ở đâu? Đây có phải chỉ là vấn đề về phong cách?
Tôi chỉ tìm thấy [nguồn] (http://rubydoc.info/gems/sinatra/1.3.3/Sinatra/Base.configure), và nó thực sự không có gì hơn là tạo ra khối với chính nó như một đối số. Vì vậy, nó chỉ là vấn đề về phong cách. – Markus