2011-01-28 12 views
47

मैं कंसोल से अपना रेक कार्य शुरू करना चाहता हूं। क्या यह करने योग्य है? यदि हां, तो ऐसा कैसे करें?कंसोल से रेक कार्यों को कैसे चलाएं?

मैं कंसोल पर इस की कोशिश की:

require 'rake' 
Rake::Task['my_task'].invoke 

लेकिन यह मुझे इस त्रुटि दे:

RuntimeError: Don't know how to build task 

यह रेक की तरह काम नहीं मिला सकते है।

किसी भी मदद की सराहना की जाएगी।

धन्यवाद

संपादित करें: मैं रेल 2.3.5

उत्तर

111

अपने रैक चल रहे कार्य दो चरणों की आवश्यकता।

आम तौर पर यह Rakefile में किया जाता है, लेकिन आप इसे मैन्युअल रूप से यहाँ क्या करना है: (। सुनिश्चित करें कि आप अपने रेल आवेदन नाम के साथ MyRailsApp की जगह बनाओ)

require 'rake' 
MyRailsApp::Application.load_tasks # <-- MISSING LINE 
Rake::Task['my_task'].invoke 

+0

यह मेरी समस्या हल हो गया। धन्यवाद!! –

+2

अधिक विकल्पों के लिए http://stackoverflow.com/questions/577944/how-to-run-rake-tasks-from-within-rake-tasks से परामर्श लें –

+4

आप 'कह .invoke' और के बीच अंतर नोट करने के लिए चाहते हो सकता है '.execute', अगर आप (जैसे एक ऐप्लिकेशन है जो बहुत अधिक समय लगाता शुरू करने के लिए के साथ एक डेटा विवेक चेकर के रूप में) काम कई बार चलाने की आवश्यकता है तो आप करना चाहते हैं' कार्य .execute'। –

13

सबसे आसान तरीका उपयोग कर रहा हूँ यह% x आईआरबी से [आदेश] चलाने के लिए है क्या करना है। मुझे यकीन नहीं है कि आप क्या हासिल करना चाहते हैं।

%x[rake db:migrate] 

संपादित करें: मैं अत्यधिक .invoke उपयोग करने के लिए के रूप में डैनियल स्वीकार किए जाते हैं जवाब में कहते हैं सलाह देते हैं।

  1. लोड हो रहा है रैक
  2. लोड हो रहा है अपने रैक कार्यों

आप दूसरे चरण के लिए याद कर रहे हैं:

+0

समस्या है, रेक नहीं करता है मेरे काम को पहचानने लगते हैं। कोई विचार क्यों? – Fajarmf

+0

क्या आप मुझे अपना रेकफाइल दिखा सकते हैं? – garno

+0

यह पूरी तरह से @garno काम करता है! क्षमा करें मुझे पता है कि यह एक साल हो गया है और अचानक मैं एक ही ज़रूरत में भाग रहा हूं। – Fajarmf

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