如何在初始化文件中使用存储在secrets.yml中的值

时间:2016-04-12 00:24:38

标签: ruby-on-rails ruby-on-rails-4

Rails 4.2.1
Ruby 2.1.5

在initializers / devise.rb中,我有:

config.omniauth :facebook, facebook_app_id, facebook_app_secret

在config / secrets.yml中,我有:

development:
  secret_key_base: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  facebook_app_id: xxxxxxxxxxxxxxxxxxxx
  facebook_app_secret: xxxxxxxxxxxxxxxxxxxxxxxx

当我尝试运行rake db:migrate时,收到以下错误消息:

NameError: undefined local variable or method `facebook_app_id' for main:Object

我的理解是我可以在secrets.yml中定义这些值并在devise.rb中使用它们。它是否正确?如果是这样,为什么我收到此错误消息。

我也尝试过,在devise.rb中:

config.omniauth :facebook, Rails.application.facebook_app_id, Rails.application.facebook_app_secret

但我仍然收到相同的错误消息:     耙子流产了!     NoMethodError:#

的未定义方法`facebook_app_id'

1 个答案:

答案 0 :(得分:1)

you can access these values by

Rails.application.secrets.facebook_app_id

Rails.application.secrets.facebook_app_secret