我正在尝试设置fb应用程序ID(由omniauth使用),以便其全局设计初始化程序和控制器。
更多信息
我需要设计初始化(config / initializer / devise.rb)以便我可以设置 config.omniauth:facebook,fb_app_id,fb_app_secret
尝试解决方案
我尝试将此信息添加到yml文件(http://railscasts.com/episodes/85-yaml-configuration-file)中,但是,看起来像是为控制器设置了yml哈希,但我无法将其用于设计初始化程序。
/home/ubuntu/myapp/config/initializers/devise.rb:215:in `block in <top (required)>': uninitialized constant APP_CONFIG (NameError)
有什么想法吗?
答案 0 :(得分:6)
对于那些感兴趣的人,我最终在config / environments / production.rb&amp;中编写了变量。配置/环境/ development.rb
您可以通过添加:
来设置全局变量config.fb_app_id = 23839282
config.fb_app_secret = aj32j32j4jk
(在production.rb或development.rb中设置适当的一个)
然后可以在初始化程序中使用它们,也可以在我的实际应用程序的视图,控制器等中使用它们。
Rails.configuration.fb_app_id
Rails.configuration.fb_app_secret
阅读第二个答案: How to define custom configuration variables in rails
答案 1 :(得分:0)
我这样做是通过添加一个初始值设定项(称为env.rb
)来设置我需要的各种环境变量(例如ENV['FACEBOOK_APP_ID']
)。
答案 2 :(得分:0)
我有类似的问题,但我找到了一个不同的解决方案。我将ENV ['FACEBOOK_APP_ID'],ENV ['FACEBOOK_APP_SECRET']从devise.rb中传递到CONFIG.OMNIAUTH。然后我添加环境变量(〜/ .bash_profile)或heroku config:添加FACEBOOK_APP_ID。这允许我安装到新环境并重新生成APPID而无需推送新代码。