如何从Padrino中的模型访问应用程序设置

时间:2014-07-24 00:19:59

标签: ruby sinatra padrino

我想在Padrino做一些基本的事情,但很多搜索都没有得到任何答案。我正在尝试从模型中访问全局设置。我在称为“端点”的environments.yaml文件的“development”部分添加了一行,如何从模型类访问此设置? environment.yaml是用于此类设置的最佳文件吗?

environments:
  development:
    endpoint: 'http://192.168.56.1:3001'

当我在模型函数中尝试使用“settings.endpoint”时,我收到错误:

undefined local variable or method `settings' for Country:Class

3 个答案:

答案 0 :(得分:2)

这可能与您要求的不完全相同,但在此处我是如何针对特定于环境的设置解决此问题:

config/apps.rb中指定设置:

Padrino.configure_apps do
  set :foobar, 42
end

然后您应该能够通过以下方式获取值:

MyApp::App.settings.foobar # => 42

当然,这是假设您的Padrino应用程序被调用MyApp(如果您不确定,可以登录app/app.rb。)

答案 1 :(得分:0)

如果我是你,我会使用环境变量:

environments:
  development:
    endpoint: <%= ENV["ENDPOINT"] %>

然后在您的ruby代码中,您可以使用ENV['ENDPOINT']访问它。

了解如何使用Dotenv等宝石在.env文件中设置环境变量。

答案 2 :(得分:0)

在padrino 0.13.2上测试

Padrino.mounted_apps[0].app_obj.settings.endpoint

可能会安装超过1个应用。我还没有测试多个应用程序。如果您发现了更多信息,请发表评论:)