如何配置Sinatra Rack应用程序以使用Figaro

时间:2018-10-26 08:05:31

标签: ruby sinatra figaro-ruby

我看到了this post,并认为某些内容丢失或版本更改了。我有一个使用figaro的非常简单的机架应用程序-由Heroku托管。目前,我在本地计算机上。

我现在需要使用ENV

我的应用程序结构:

APP
 |_ config/
 |_ public/
 |_ views/
 |_ config.ru
 |_ app.rb
 |_ other-files

内部config / application.yml

SOME_KEY: some-value

内部config.ru

require './app.rb'
run MyApp.run!

这部分导致错误。在app.rb内部:

require  File.dirname(__FILE__) + '/config/application.yml'

[...]

这是与上面的链接相同的行。我得到

  

无法加载此类文件/config/application.yml

app.rb中,我需要能够做ENV['SOME_KEY']

2 个答案:

答案 0 :(得分:0)

您不能仅require一个Yaml文件,因为它不是红宝石。 Yaml是不是特定于ruby的文件结构。 Figaro也被编写为与Ruby on Rails一起使用,而不是Sinatra。您可能会想出一种使其工作的方法,但它并不像加载yaml配置文件那样简单。

有关如何实现您要完成的工作的一些想法,请参阅此帖子。这是可能适合您的宝石的分叉版本。

https://github.com/laserlemon/figaro/pull/229

答案 1 :(得分:0)

我以前是在独立应用程序中完成此操作的,如下所示:

Figaro.application = Figaro::Application.new(
  environment: 'production',
  path: File.expand_path("config/application.yml")
)
Figaro.load