2011-11-18 17 views
13

से मेरी संवेदनशील जानकारी (उदा। पासवर्ड) छुपाएं मैंने साइन अप पर एक पुष्टिकरण ईमेल भेजने के लिए बस डेविस (रेल प्रमाणीकरण प्लगइन) सेट अप किया है।गीथब

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.smtp_settings = { 
    :tls => true, 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => "gmail.com", 
    :authentication => :login, 
    :user_name => "[my email]", 
    :password => "[my pass]" 
} 

मैं स्पष्ट रूप से इस [मेरे पास] बस वहाँ बैठे साथ GitHub अप करने के लिए पुश करने के लिए नहीं करना चाहती: यह मेरा अपना environment.rb फ़ाइल में निम्न डाल शामिल किया गया। क्या यहां कोई मानक अभ्यास है?

उत्तर

10

मानक आपकी कॉन्फ़िगरेशन सेटिंग्स को एक YAML फ़ाइल में रखना है जो आपके रेपो में शामिल नहीं है।

फिर आप इसे केवल डेटा प्राप्त करते हैं।

कार्रवाई में इसे देखने के लिए रेलवेकास्ट "#85 YAML Configuration File" जांचें।

+0

बेशक, यदि आप केवल रूबी से अपनी कॉन्फ़िगरेशन फ़ाइल तक पहुंचने का इरादा रखते हैं, तो [समुदाय के सदस्य] (http://www.amazon.ca/Distributed- प्रोग्रामिंग- रूबी- मार्क- बेट्स/डीपी/0321638360) जो [कॉन्फ़िगर करना पसंद करते हैं ... रूबी] (http://www.metabates.com/2011/06/28/lets-say-goodbye-to-yaml-for-configuration-shall-we/)। –

+0

डेटा प्राप्त करने से आपके 'कॉन्फ़िगर/प्रारंभकर्ता' में एक फ़ाइल शामिल हो सकती है जो 'CONFIG = YAML.load_file ("# {:: Rails.root.to_s} /config/config.yml" जैसे कुछ कहती है [:: रेल। env] ' – jimworm

1

मेल सेटिंग्स वाली कॉन्फ़िगरेशन फ़ाइल बनाएं और उन्हें फ़ाइल से लोड करें। सभी सेटिंग्स मिटाए गए कॉन्फ़िगरेशन फ़ाइल में जांचें। यह देखने के लिए कि क्या फ़ाइल भर चुकी है, और यदि यह नहीं है, तो एक त्रुटि प्रदर्शित करें और गहन रूप से बाहर निकलें (या मेलिंग अक्षम करें, बस यह सुनिश्चित करें कि उपयोगकर्ता जानता है कि क्या हो रहा है)।

इसमें अतिरिक्त लाभ है कि उपयोगकर्ता आसानी से कोड संपादित किए बिना मेल सेटिंग्स बदल सकते हैं। एक कॉन्फ़िगरेशन सेट करने के लिए उपयोगकर्ता को कोड संपादित करने के लिए सामान्य रूप से, एक बुरा विचार है। साथ ही, आप कॉन्फ़िगरेशन को कोड से अलग स्थान पर रख सकते हैं ताकि इसे प्राप्त करना आसान हो।

4

एपनेडिविंग सही है, अपने समाधान को जोड़कर, आपके कोड को डाउनलोड करने वाले अन्य लोगों को यह पता नहीं चल सकता है कि इस येल को कैसे उत्पन्न किया जाए, इसलिए आपको निम्न संरचना के जरिए उन्हें संकेत देना होगा:

config 
    | 
    |--- environment.rb 
    |--- mail_settings.yml 
    |--- main_settings.yml.example 

फ़ाइल 'mail_settings.yml' अपने संवेदनशील जानकारी है और रेपो में शामिल नहीं है, और राशि होने 'main_settings.yml.example' अपने रेपो में शामिल है, और 'mail_settings.yml' के रूप में एक ही संरचना ।

और अधिक सहायक होने के लिए, आप README फ़ाइल में एक अनुभाग प्रदान करते हैं, यह वर्णन करते हुए कि लोगों को mail_settings.yml.example फ़ाइल को mail_settings.yml पर कॉपी करने और इसकी सामग्री को बढ़ाने की आवश्यकता है।