2016-08-20 8 views
0

Я следую за рельсами # 85 here и помечены корректным ответом на stackoverflow here.Пытаться настроить переменные среды с помощью fb app_id и app_secret

Я пытаюсь использовать facebook «app_id» и «app_secret» для установки в качестве переменных среды в рельсах.

мой код:

Инициализаторы/facebook.rb

FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env] 

конфигурации/facebook.yml

development: 
app_id: abcdefg 
app_secret: 123456 
production: 
app_id: abcdefg 
app_secret: 123456 

Инициализаторы/omniauth.rb

OmniAuth.config.logger = Rails.logger 

Rails.application.config.middleware.use OmniAuth::Builder do 

provider :facebook, FACEBOOK_CONFIG['abcdefg'], FACEBOOK_CONFIG['123456'], {:client_options => {:ssl => {:ca_file => Rails.root.join("cacert.pem").to_s}}} 
end 

Когда я установить переменные среды перед app_id и app_secret, т.е. FACEBOOK_CONFIG, когда я пытаюсь войти через facebook, он возвращает сообщение «app_id parameter required». Так что этот способ не работает. Мне интересно, есть ли какой-нибудь код, или кто-то может увидеть что-то, что я делаю неправильно, переменные среды не обрабатываются через facebook (где они были раньше без каких-либо переменных ENV).

ответ

1

в вашем rails console попробуйте

редактировать

require 'yaml' 
yaml = YAML.load_file(File.expand_path("#{Rails.root}/config/facebook.yml")) 
puts yaml 

* редактировать 2 *

FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env] 

изменение:

FACEBOOK_CONFIG = YAML.load_file(File.expand_path("#{Rails.root}/config/facebook.yml"))[::Rails.env] 
+0

Когда я пытаюсь выполнить запрос «yaml» в консоли rails, он возвращает ложное значение? Остальным я не уверен, что там происходит. –

+1

В порядке о возврате false. Покажите мне, что puts возвращает –

+0

NameError: неопределенная локальная переменная или метод 'yaml 'для main: Object из (irb): 1 .... затем список самоцветов, которые не удалось инициализировать –

Смежные вопросы