2011-06-07 8 views
19

मैं रूबी 1.9.2 के साथ रेल 3.1 बीटा का उपयोग कर रहा हूं और 0.9.2 रेक करता हूं, और मैंने लिखा है रेक रेक का एक गुच्छा। यहाँ एक उदाहरण है:रेक कार्यों के लिए नया प्रारूप क्या है? (कार्य: टी, तर्क,: जरूरत => [deps] बनाम कार्य: टी, [args] => [deps])

at /home/user/railsapp/lib/tasks/data/dump_graph.rake:3:in `block in <top (required)>' 
WARNING: 'task :t, arg, :needs => [deps]' is deprecated. Please use 'task :t, [args] => [deps]' instead. 

मैं उलटफेर के साथ प्रयोग किया है:

namespace :data do 
    desc "dump the nodes and edges for a graph" 
    task :dump_graph, :species_id, :needs => :environment do |t,args| 
    args.with_defaults(:species_id => 'Hs') 
    # ... 
    end 
end 

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

क्या रेक मुझे व्यक्तिगत निर्भरताओं को देने की अपेक्षा करता है? यदि रेल रेलवे वातावरण है तो मैं इन्हें रेक रेक में कैसे परिभाषित करूं?

अद्यतन दस्तावेज़ीकरण का एक लिंक स्वीकार्य उत्तर होगा! मैंने गुगल किया है और गुगल किया है, लेकिन कोई भाग्य नहीं है।

(और हाँ, मुझे लगता है कि प्रारूप त्रुटि संदेश में दिया जाता है। लेकिन उस प्रारूप विविधताओं मैं कोशिश की है के आधार पर, सही प्रतीत नहीं होता।)

+0

मुझे यह समस्या भी है लेकिन समाधान काम नहीं कर रहा है। मेरे पास तर्क के बिना एक रेक कार्य भी है और यह या तो काम नहीं करता है। मेरा वाक्यविन्यास इस प्रकार है: 'कार्य: task_name =>: पर्यावरण करते हैं ... अंत' – n8gard

उत्तर

10

मैं जानता हूँ कि यह कभी कभी मुश्किल है समझने के लिए लेकिन त्रुटि संदेश आप नए स्वरूप देता है:

task :t, [args] => [deps] 
अपने उदाहरण के लिए

तो:

task :dump_graph, :species_id => :environment 

http://www.postal-code.com/binarycode/2011/06/02/rake-needs-deprecated/

+6

विचित्र रूप से जब मैं इसका प्रयोग कर रहा था तो मैं इसे काम नहीं कर सका, लेकिन अब यह करता है। मुझे यह करने के द्वारा काम करने के लिए मिला: 'कार्य: dump_graph, [: species_id] => [: पर्यावरण]'। स्पष्ट रूप से दाईं तरफ की सूची वैकल्पिक है यदि आपको केवल एक ही डिप्टी मिल गया है। –

9

उपयोग जो मेरे लिए काम करता है:

task :task_name, [:argument] => :environment 

मुझे लगता है कि अगर आप को सूचीबद्ध करने के कई निर्भरता था, deps सरणी अंकन की आवश्यकता होगी।

मुझे नहीं पता कि एक तर्क के लिए सरणी नोटेशन की आवश्यकता क्यों होती है - रेक के साथ रेक कार्य चलाने के बारे में एक त्रुटि देता है: तर्क प्रतीक खाली का जवाब नहीं दे रहा है? तरीका।

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