ruby-on-rails – 如何在config / initializer中使用YML值

我正在努力将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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...