में एक और कार्य कैसे कॉल करूं हालांकि यह आपके यहां पाए गए अन्य प्रश्नों के समान ही हो सकता है, थोड़ी मोड़ है। मेरे पास दो निर्देशिकाएं हैं, कहें/घर/रेल/रेक और/होम/रेल/test_app। रेल निर्देशिका वह जगह है जहां मैं अपनी सभी रेल परियोजनाओं को रखता हूं।मैं रेक
रैक के अंदर, मैं एक Rakefile और एक create.rake फ़ाइल है।
यह वही मेरी rakefile देखो की तरह
namespace :setup do
desc "something"
task :init do
print "Name of the destination directory: "
name = STDIN.gets.strip
cp_r '.', "../#{name}/lib/tasks"
cd "../#{name}"
sh "rake setup:create"
end
end
और create.rake
namespace :setup do
desc "Install"
task :create do
sh 'git init'
#some other code
end
end
यह क्या करता है स्पष्ट है। मैं रेक निर्देशिका की सामग्री को/test_app/lib/कार्यों में कॉपी करना चाहता हूं। फिर test_app में निर्देशिका बदलें और सेटअप चलाएं: test.app/lib/कार्यों में स्थापित install.rake फ़ाइल में परिभाषित कार्य बनाएँ। यह काम करता है, लेकिन क्या यह करने का यह रेक तरीका है? क्या कोई मुझे थोड़ा सा संकेत दे सकता है कि यह कैसे किया जाता है, रेक रास्ता।
$ rake setup:init
Name of the destination directory:
testapp
cp -r . ../testapp/lib/tasks
cd ../testapp
rake aborted!
Don't know how to build task 'setup:create'
/home/TradeRaider/rails/Rake/Rakefile:8:in `block (2 levels) in <top (required)>'
/home/TradeRaider/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval'
/home/TradeRaider/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => setup:init
(See full trace by running task with --trace)
मैंने वास्तव में इसे आजमाया, लेकिन यह मेरे मामले में काम नहीं कर रहा है। प्रारंभ में, जब मैं रेक सेटअप को कॉल करता हूं: init, यह ~/रेल/रेक/रेकैकाइल लाता है और इनिट कार्य निष्पादित करता है। यदि सेटअप: निर्माण को उसी फ़ाइल में परिभाषित किया गया था, तो मैं इनवॉक विधि का उपयोग कर सकता था। लेकिन मैं ~/रेल/testapp/lib/कार्यों में परिभाषित एक कार्य को कॉल करने की कोशिश कर रहा हूं। उस मामले में, यह काम नहीं करेगा। – TradeRaider
या क्या मुझे कुछ याद आ रहा है? – TradeRaider
अजीब लगता है, आपके पास क्या त्रुटि है? – apneadiving