我正在努力将facebook整合到我的应用中.要做到这一点,我正在使用考拉,设计和omniauth.
对于考拉,我有
- /config/facebook.yml
- development:
- app_id: 123123132123
- secret_key: dasadsasd1231231
- test:
- app_id: 313131313
- secret_key: das132asdads12132
- production:
- app_id: dasdsadsadsadsa
- secret_key: adsdsa12das123fds21
然后我也有了omniauth:
- /config/initalizers/omniauth.rb
- Rails.application.config.middleware.use OmniAuth::Builder do
- provider :facebook,123123132123,'dasadsasd1231231'
- end
这里的问题是我在两个位置都重复了相同的值.我该如何干这个,以便app_id和secret_key只存在于一个地方,一个文件引用另一个?
解决方法
这样做有一个很棒的Railscast:
http://railscasts.com/episodes/85-yaml-configuration-file
在omniauth.rb中,您可以添加以下行:
- FACEBOOK_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/facebook.yml")[RAILS_ENV]
然后你可以这样做:
- Rails.application.config.middleware.use OmniAuth::Builder do
- provider :facebook,FACEBOOK_CONFIG['app_id'],FACEBOOK_CONFIG['secret_key']
- end