ruby - 我需要 Sinatra 设置的位置?

  显示原文与译文双语对照的内容

我有一个 Sinatra 项目,由 3个 Sinatra 应用程序( 模块式样式) 组成。 我在 settings.rb 下有设置,我想在所有 3 Sinatra 应用程序中使用这些设置。

我正在运行 ruby 1.9.3p327


我的settings.rb:


#Environments: :production, :development
set :environment, ENV['RACK_ENV'] ||="development".to_sym

disable :run #disable internal webserver

configure :development do
 set :haml, :format => :html5, :ugly => false
 enable :static
 enable :show_exceptions
 enable :raise_errors
end

configure :production do
 set :haml, :format => :html5, :ugly => true
 disable :static
 disable :show_exceptions
 disable :raise_errors
end
#######################


我的config.ru:


require 'sinatra' #Web Framework
require 'haml' #Haml Rendering for the views
require './db_setup.rb' #DB Setup
require './models.rb' #DB Models
require './app1.rb' #app1
require './app2.rb' #app2
require './app3.rb' #app3

map '/' do
 run App1
end

map '/app2' do
 run App2
end

map '/app3' do
 run App3
end


我在哪里放置 require'./settings.rb'


Aviable位置:

在顶部的每个应用程序文件中,例如 app1.rb

在每个应用程序类中使用 Sinatra::Base 作为父类

config.ru


我不知道为什么,但是我,他们都没有工作。 真正的工作是拷贝和粘贴每个应用程序类中的settings.rb 内容。 但这真的很脏,因为我需要更改 3个文件,如果需要的话,如果需要

时间: 原作者:

rewrite

啊问题是问题并不在于。 接下来,run 正在创建应用程序的新实例,使用默认设置。 这些应用程序不支持调用,这只是在非模块化应用程序上设置;例如 必须从应用程序上下文中调用 configure

我将在子类中执行以下操作:


class BaseApp <Sinatra::Base
 set :environment, ENV['RACK_ENV'] ||="development".to_sym
 #etc
end

然后把所有的应用都从它的子类中


class App1 <BaseApp
 #your app
end

原作者:
...