2011-05-06 13 views
8

में वाईएमएल मानों का उपयोग कैसे करें मैं अपने ऐप में फेसबुक को एकीकृत करने के लिए काम कर रहा हूं। ऐसा करने के लिए मैं कोआला, देवता, और 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 केवल एक ही स्थान पर रहें और एक फ़ाइल दूसरे संदर्भ में हो?

उत्तर

9

ऐसा करने पर एक बड़ा Railscast है:

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 
+0

मुझे एस 3 कॉन्फ़िगरेशन के बारे में एक समान प्रश्न के साथ मदद मिली, http://stackoverflow.com/questions/6305523/rails3-how-to-get-at-aws-s3s-yml-config-data-in-the- ऐप/6306039 # 6306039, धन्यवाद! –

3

के अलावा http://railscasts.com/episodes/85-yaml-configuration-file

omniauth.rb में, आप इस लाइन में जोड़ सकते हैं उत्तर के ऊपर आपको फ़ाइल लोड करने के लिए थोड़ा अलग कोड का उपयोग करने की आवश्यकता हो सकती है:

FACEBOOK_CONFIG = YAML.load_file(Rails.root.join("config","facebook.yml"))[Rails.env]