Ruby on rails Rails:在哪里定义facebook应用程序id,以便Desive初始值设定项和控制器可以使用它。

Ruby on rails Rails:在哪里定义facebook应用程序id,以便Desive初始值设定项和控制器可以使用它。,ruby-on-rails,devise,global-variables,yaml,omniauth,Ruby On Rails,Devise,Global Variables,Yaml,Omniauth,我正在尝试设置fb应用程序id(由omniauth使用),以使其全局用于设计初始化器和控制器 更多信息 我需要在designe初始化器(config/initializer/designe.rb)中使用它,以便设置 config.omniauth:facebook,fb\u app\u id,fb\u app\u secret 尝试的解决方案 我尝试将此信息添加到yml文件()中,但是,看起来yml哈希是为控制器设置的,但我无法将其用于Desive初始化器 /home/ubuntu/myapp/

我正在尝试设置fb应用程序id(由omniauth使用),以使其全局用于设计初始化器和控制器

更多信息

我需要在designe初始化器(config/initializer/designe.rb)中使用它,以便设置 config.omniauth:facebook,fb\u app\u id,fb\u app\u secret

尝试的解决方案

我尝试将此信息添加到yml文件()中,但是,看起来yml哈希是为控制器设置的,但我无法将其用于Desive初始化器

/home/ubuntu/myapp/config/initializers/devise.rb:215:in `block in <top (required)>': uninitialized constant APP_CONFIG (NameError)
/home/ubuntu/myapp/config/initializers/designe.rb:215:in'block-in':未初始化常量APP\u-config(NameError)

有什么想法吗?

我通过添加一个初始值设定项(称为
env.rb
)来设置我需要的各种环境变量(例如,
env['FACEBOOK\u APP\u ID']
)。

我通过添加一个初始值设定项(称为
env.rb
)来设置我需要的各种环境变量(例如,
env['FACEBOOK\u APP\u ID'
).

对于那些感兴趣的人,我最后在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
阅读第二个答案:

对于那些感兴趣的人,我最后在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
阅读第二个答案:

我遇到了类似的问题,但我找到了不同的解决方案。我从designe.rb内将ENV['FACEBOOK\u APP\u ID',ENV['FACEBOOK\u APP\u SECRET']传递到CONFIG.OMNIAUTH。然后我添加环境变量(~/.bash\u profile)或heroku config:add FACEBOOK\u APP\u ID。这允许我在不推新代码的情况下安装到新环境并重新生成appid。

我遇到了类似的问题,但我找到了不同的解决方案。我从designe.rb内将ENV['FACEBOOK\u APP\u ID',ENV['FACEBOOK\u APP\u SECRET']传递到CONFIG.OMNIAUTH。然后我添加环境变量(~/.bash\u profile)或heroku config:add FACEBOOK\u APP\u ID。这允许我安装到新环境并重新生成appid,而无需推送新代码。

有趣-但是,这些环境变量无法区分我是处于开发模式还是生产模式…您可以在生产服务器中手动设置它们(例如,使用
export-FACEBOOK\u-APP\u-ID=…
,在初始值设定项中,您可以使用
| |=
hmm…是否有任何方法通过yml加载它-我试图获得类似于RailCastInterest中描述的内容-但是,这些环境变量无法区分我是否在d上。)开发或生产模式…您可以在生产服务器中手动设置它们(例如,使用
导出FACEBOOK\u APP\u ID=…
,在初始值设定项中,而不是使用
=
,您可以使用
|124;=
hmm…有没有办法通过yml加载它-我正在尝试获得类似于railcast中描述的内容