2014-07-24 23 views
3

我想在帕德里諾做一些基本的事情,但很多搜索沒有提供任何答案。我正嘗試從模型中訪問全局設置。我已經在environments.yaml文件的「開發」部分添加了一行,名爲「端點」,如何從模型類訪問此設置? environments.yaml是用於這種設置的最佳文件嗎?如何從帕德里諾的模型中訪問應用程序設置

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

當我嘗試在模型函數中使用 「settings.endpoint」,我得到的錯誤:

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

回答

0

如果我是你,我會使用環境變量:

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

然後在你的ruby代碼中,你可以用ENV['ENDPOINT']來訪問它。

查看如何使用gem(例如Dotenv)在.env文件中設置環境變量。

+0

謝謝,使用環境變量意味着我不需要yaml配置文件,所以'endpoint:<%= ENV [「ENDPOINT」]%>'是多餘的。 – kristianp

+0

嗯,我不是Padrino的專家,但是在rails中,無論使用env vars還是不使用,某些.yml文件都是必需的。 – Pak

1

這可能不是正是你問什麼,但這裏是我是如何解決這個對於那些環境特定的設置:

指定config/apps.rb設置:

Padrino.configure_apps do 
    set :foobar, 42 
end 

你應該然後能夠得到的價值:

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

這當然,假設您的Padrino應用程序是稱爲MyApp(如果您不確定,您可以登錄app/app.rb)。

0

測試在padrino 0.13.2

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

可以有多於1級的應用程序安裝。我還沒有測試過多個應用程序。如果你發現更多的話,請對修復發表評論:)

相關問題