2011-09-14 24 views
11

प्यार रेल थे, लेकिन अभी भी कमांड लाइन से कार्यों को चलाने में कितना समय लगता है।रेल: एक बार में एक से अधिक रेक कार्य चलाना?

मुझे आश्चर्य है कि हर बार पर्यावरण को फिर से लोड किए बिना एकाधिक रेक कार्यों को जोड़ना संभव है। उदाहरण के लिए, अगर मैं

rails generate rspec:install && rails generate model test_model title:string && rake db:migrate 

चलाने यह 10 सेकंड खर्च करेगा रेल लोड rspec स्थापित चलाने के लिए है, तो एक और दस सेकंड के वातावरण को लोड करने के लिए मॉडल उत्पन्न, तो माइग्रेशन के लिए एक और। क्या सभी 3 आज्ञाओं के लिए एक ही वातावरण को खोलने का कोई तरीका है?

उत्तर

21

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

अपने आदेश सिर्फ कार्यों रेक रहे हैं, तो आप उन्हें अलग करने के रिक्त स्थान का उपयोग कर सकते हैं, उदाहरण के लिए:

rake db:migrate && rake db:test:clone_structure 

बन जाएगा

rake db:migrate db:test:clone_structure 
+0

वाह - मैं दंग रह मुझे लगता है कि के बारे में पता नहीं था हूँ । बढ़िया, बहुत धन्यवाद। – PlankTon

+2

नोट: रिक्त कार्यों को रिक्त स्थान से अलग करना बैश ऑपरेटर '&&' जैसा कार्य करता है, जैसा कि उत्तर का तात्पर्य है - 'ऑपरेटर' नहीं। स्पेस-अलगाव केवल एक कार्य चलाता है यदि पिछले कार्य बिना त्रुटि के समाप्त हो जाते हैं। 'परीक्षण' कार्य के दौरान कोई परीक्षण विफल होने पर 'बंडल निष्पादन रेक परीक्षण ककड़ी' केवल 'ककड़ी' कार्य चलाता है। –

+0

स्पेस-अलगाव बिल्कुल '&&' के बराबर नहीं है। मेरे कोड के एक संस्करण में, 'बंडल निष्पादन रेक परीक्षण ककड़ी' कुछ ककड़ी परीक्षण विफल करता है, लेकिन 'बंडल निष्पादन रेक परीक्षण और बंडल निष्पादन रेक ककड़ी' सभी परीक्षणों को पास करने देता है। (यह कभी-कभी कोड के उस संस्करण पर 'बंडल निष्पादन ककड़ी' ('रेक 'के बिना) से संबंधित हो सकता है, लेकिन हमेशा नहीं, कुछ परीक्षण विफल भी होते हैं।) –

संबंधित मुद्दे