Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 是否有基于机架或Sinatra的环境配置实用程序?_Ruby_Deployment_Development Environment_Sinatra_Rack - Fatal编程技术网

Ruby 是否有基于机架或Sinatra的环境配置实用程序?

Ruby 是否有基于机架或Sinatra的环境配置实用程序?,ruby,deployment,development-environment,sinatra,rack,Ruby,Deployment,Development Environment,Sinatra,Rack,Sinatra/Rack世界中是否有类似于Rails配置加载方案的东西,根据Rails.env加载一个config\environments\*.rb文件 我知道我可以很容易地开发一个,我只是想知道是否已经有了一些东西。如果你遵循Rails的惯例,在config/environments/environment_name.rb中为每个环境放置一个文件,你可以在你的Sinatra应用程序中,或者在你的config.ru文件中为Rack放置这样的东西: Dir.glob(File.dirname(_

Sinatra/Rack世界中是否有类似于Rails配置加载方案的东西,根据
Rails.env
加载一个
config\environments\*.rb
文件


我知道我可以很容易地开发一个,我只是想知道是否已经有了一些东西。

如果你遵循Rails的惯例,在config/environments/environment_name.rb中为每个环境放置一个文件,你可以在你的Sinatra应用程序中,或者在你的config.ru文件中为Rack放置这样的东西:

Dir.glob(File.dirname(__FILE__) + "/config/environments/#{settings.environment}.rb", &method(:require))

通过一些小的修改,您可以使其加载其他文件位置/组合。Sinatra的配置块也同样有效。

事实证明,Sinatra提供了类似但有限的功能

参见代码:

因此,您可以执行以下操作:

class MyApp < Sinatra::Base
  configure :development, :test do
    #only executes this code when environment is equal to one of the passed arguments
    # I'm pretty sure Sinatra sets this based on ENV['RACK_ENV']
  end
end
classmyapp
我从monkrb.com改编了我的(无论如何,它也是RoR中的yaml)

e、 g。

有一个名为Sinatra::ConfigFile的文件,它现在位于Sinatra::Contrib中


那里有很多有用的东西。

谢谢,我最后做的就是这些。。除非我只是让它在环境文件不存在时失败:
require“config/#{settings.environment}”
YAML.load_file(path_of "config/settings.yml")[RACK_ENV]