2011-09-19 4 views
17

के साथ विकास में ई-मेल को छोड़कर पुष्टि करें मैं विकास का उपयोग कर रहा हूं और मैं विकास मोड में होने पर पुष्टिकरण ई-मेल छोड़ने में सक्षम होना चाहता हूं। चूंकि मेरा आवेदन मेरी स्थानीय मशीन पर चलते समय ई-मेल नहीं भेज सकता है, इसलिए मुझे केवल चेतावनी संदेश मिलेगा कि आपको एप्लिकेशन तक पहुंचने से पहले पुष्टि करने की आवश्यकता है।डिवाइज़

उत्तर

23

रयान बेट्स से

https://github.com/ryanb/letter_opener पत्र ओपनर मणि की कोशिश इसे भेजने के बिना ब्राउज़र में ईमेल खुल जाएगा। यदि आप विकास में हैं तो आप चीजों को छोड़ना नहीं चाहते हैं क्योंकि सामान मिस/भूल जाएगा।

+0

या [letter_opener_web] (https://github.com/fgrehm/letter_opener_web) –

+0

स्टेजिंग के लिए यहां पूछताछ के बारे में निश्चित नहीं है, लेकिन मैं व्यक्तिगत रूप से बहुत सारे डेटा के साथ एक बड़ा ऐप पॉप्युलेट कर रहा हूं। मेरे ब्राउज़र में मेरे पास 600+ टैब खोले गए थे क्योंकि मैं पत्र सलामी बल्लेबाज का उपयोग करता हूं। मैं मानता हूं कि ज्यादातर मामलों में आप छोड़ना नहीं चाहते हैं, इस मामले में मैं def। छोड़ने की जरूरत है। – Sean

1

डेविस ईमेल भेजने के लिए एक्शनमेलर का उपयोग करता है। परीक्षण मोड में, एक्शनमेलर को वास्तव में कोई ईमेल नहीं भेजना चाहिए।

एक्शनमेलर और परीक्षण वातावरण पर स्पष्टीकरण के लिए this tutorial देखें।

तो, पर्यावरण के आधार पर, आप मूल रूप से डिलीवरी बंद कर सकते हैं, जबकि आपके वास्तविक परीक्षणों को प्रभावित नहीं करते हैं। आपको बस उस विकल्प को environments/test.rb फ़ाइल में निर्दिष्ट करना होगा।

+0

मुझे लगता है कि परीक्षण फ़ाइल में इसमें निम्न कोड है: # एक्शन मेलर को असली दुनिया को ईमेल वितरित न करें। #: परीक्षण वितरण विधि # एक्शनमेलर :: Base.deliveries सरणी में भेजे गए ईमेल जमा करती है। config.action_mailer.delivery_method =: test क्या मुझे बस उस कोड स्निपेट को कॉन्फ़िगर/वातावरण/development.rb फ़ाइल – tomciopp

+0

हम्म पर कॉपी करना चाहिए, भले ही मैं डिलीवरी बंद कर दूं, फिर भी मुझे पुष्टि करने योग्य मॉड्यूल को संतुष्ट करने के लिए एक तरीका की आवश्यकता नहीं होगी , क्योंकि मुझे अभी भी वही त्रुटि मिल जाएगी जो मुझे पुष्टि करने की आवश्यकता है। – tomciopp

+0

यदि आपका मतलब है, जहां तक ​​परीक्षणों का संबंध है, इसे संतुष्ट करने का एक तरीका, मैं सिर्फ नकली वस्तु के साथ पुष्टि करता हूं, या डीबी से पुष्टि कोड खिलाकर, क्योंकि वास्तविक ईमेल की डिलीवरी ' टी परीक्षण में क्या महत्वपूर्ण है। महत्वपूर्ण बात यह है कि पुष्टिकरण तंत्र काम करता है, है ना? यही है, जब पुष्टिकरण URL के माध्यम से उचित पुष्टि कोड प्रस्तुत किया जाता है, तो आप जानना चाहते हैं कि डीबी में किसी प्रकार का 'पुष्टि' ध्वज फ़्लिप किया गया है? – jefflunt

2

रेल 3 में आप Railscast 206 में बताए गए अनुसार अपने विकास ईमेल को फिर से शुरू करने के लिए "इंटरसेप्टर" का उपयोग कर सकते हैं।

26

डेविस के पास skip_confirmation! भी एक विधि है जिसे आप मेल भेजने से बचने के लिए इसे सहेजने से पहले मॉडल पर कॉल कर सकते हैं। यह बस confirmed_at विशेषता सेट करता है जिसके परिणामस्वरूप मेल भेजने को छोड़ दिया जाता है।

5

या आप अपने विकास पर्यावरण में MailCatcher आज़मा सकते हैं।

1

अपने मॉडल को तैयार करने के लिए लें। आम तौर पर इसका उपयोगकर्ता। आरबी। और कॉन्फ़िगर स्वीकार्य को हटाएं या टिप्पणी करें। यह

13

के रूप में के रूप में सरल पुष्टि करने की प्रक्रिया नहीं कर पाएगा कि

user=User.new 
user.email="[email protected]" 
user.password="yourPassword" 
user.skip_confirmation! 
user.save 
+2

बस थोड़ा एफवाईआई के रूप में, आप इसे सभी ब्लॉक में डाल सकते हैं: 'user = user.new {| u | u.email = '[email protected]'; u.password = 'yourPassword'; u.skip_confirmation! } .save'। ब्लॉक मज़ाकिया हैं! – wulftone

3

आप एक बहुत हल्के वजन तरीका यह है चाहते हैं, पंजीकरण के बाद अपने टर्मिनल में देखो - रेल उत्पादन ईमेल प्राप्त हुआ था कि पता चलता भेजा गया है, आप पुष्टिकरण लिंक की प्रतिलिपि बना सकते हैं, खाते की पुष्टि कर सकते हैं और फिर परीक्षण जारी रख सकते हैं।

कच्चे, लेकिन प्रभावी।