我如何告诉Sinatra它是什么环境(开发,测试,生产)?

(免责声明:在Heroku上部署Sinatra的新function。)

我见过http://www.sinatrarb.com/configuration.html它告诉我set :environment, :production 。 我的问题是,如何指定它:“在Heroku中,将环境设置为生产,否则保持测试/开发。”

此外,即使在设置了行set :environment, :production ,我认为它不起作用,因为当我尝试在本地设置应用程序时,它仍在运行(当我知道(或者我想我知道)它应该’因为我没有在我的电脑上安装postgres)。

的Gemfile

 group :production do gem 'dm-postgres-adapter' end group :development, :test do gem 'dm-sqlite-adapter', "~> 1.2.0" end 

Sinatra环境与正在加载的生产组内的gem没有任何关系。 这些是分开的,彼此不兼容。

Sinatra从RACK_ENV环境变量中RACK_ENV环境,只需使用RACK_ENV=production rackup启动它

Bundler的工作方式有所不同,您可以选择在运行bundle install时应排除哪些组: bundle install --without production