我想知道如何将自定义配置变量添加到rails应用程序以及如何在控制器中访问它们,例如我想能够在配置文件中定义upload_directory,例如development.rb并且能够在我的一个中访问它控制器.
其次我计划在我的应用程序中为上传提供S3支持,如果我想添加带有s3访问,密钥的yaml文件,如何在我的Rails应用程序中初始化它以及如何访问我定义的值在该配置文件中.
我有一个初始化程序,可以从yaml文件加载配置设置.我需要在其他初始化程序中使用这些设置.需要它们的初始化程序不会看到这些设置.我认为正在发生的是设置加载得太迟了.如何保证我的配置初始化程序首先被加载?是不是让像初始化者依赖另一个?
谢谢!
我一直试图弄清楚Ryan Bates在他的Facebook身份验证截屏中如何设置以下"FACEBOOK_APP_ID"和"FACEBOOK_SECRET"环境变量.
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET']
Run Code Online (Sandbox Code Playgroud)
有类似的问题,但没有我能够在Rails 3.2.1上工作的答案.
更新:
截至2013年5月,我处理ENV变量的首选方法是通过费加罗宝石
ruby-on-rails environment-variables railscasts omniauth ruby-on-rails-3
我有一个名为的文件frontend_configuration.rb,如下所示:
class FrontEndConfiguration
class << self
attr_accessor :base_url
end
end
Run Code Online (Sandbox Code Playgroud)
在我的development配置中,我有一行:
FrontEndConfiguration.base_url = "http://localhost:4200"
Run Code Online (Sandbox Code Playgroud)
当我尝试运行我的 rails 服务器时,它给了我一个错误说:
uninitialized constant FrontEndConfiguration (NameError)
Run Code Online (Sandbox Code Playgroud)
我在这里关注这个 Stackoverflow 答案:Rails 3 / Setting Custom Environment Variables
为什么 Rails 没有检测到我的自定义初始值设定项?
我正在使用 Rails 5 API only 模式。