0

我正在尝试设置 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)

有任何想法吗?

4

3 回答 3

5

对于那些感兴趣的人,我最终将变量写在 config/environments/production.rb & config/environments/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

阅读第二个答案: 如何在 Rails 中定义自定义配置变量

于 2012-05-01T16:52:20.167 回答
0

我通过添加一个初始化程序(称为env.rb)来设置我需要的各种环境变量(ENV['FACEBOOK_APP_ID']例如 )。

于 2012-04-30T13:17:03.220 回答
0

我遇到了类似的问题,但我找到了不同的解决方案。我从 devise.rb 中将 ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'] 传递到 CONFIG.OMNIAUTH。然后我添加环境变量 (~/.bash_profile) 或 heroku config:add FACEBOOK_APP_ID。这允许我安装到新环境并重新生成 APPID,而无需推送新代码。

于 2013-03-11T17:35:54.377 回答