Tôi có một nhiệm vụ Rake mà tôi đã đơn giản hóa dưới đây. Tôi đang sử dụng Ruby 1.9 trên Windows.Tại sao Rake không thể gọi nhiều tác vụ liên tiếp?
Có lẽ bạn muốn đoán kết quả của việc gọi tác vụ Rake "list_all_levels" bên dưới? Nó phải là:
"Hello level 1"
"Hello level 2"
"Hello level 3"
Nhưng vì lý do nào đó, tôi chỉ in "Hello level 1" rồi dừng.
Tức là, nó luôn luôn chỉ gọi nhiệm vụ đầu tiên. Nếu tôi thay đổi dòng đầu tiên để vượt qua arg "42", nó sẽ in "Xin chào cấp 42" và sau đó dừng lại.
Tôi tự hỏi tại sao nó không gọi nhiệm vụ 3 lần và in tất cả 3 dòng? Và có cách nào để làm cho nó hoạt động như thế nào tôi mong đợi?
task :list_all_levels => [] do
Rake::Task[:list].invoke 1
Rake::Task[:list].invoke 2
Rake::Task[:list].invoke 3
end
task :list, [:level] => [] do |t, args|
puts "Hello level #{args.level}"
end
Điều này thực sự đã cứu ngày của tôi, cảm ơn! – kizzx2
Hãy cẩn thận nếu thay đổi nó thành 'execute' @PandaWood vì chúng không giống chính xác => [rake execute vs invoke] (http://chrisroos.co.uk/blog/2007-12-06-ruby-rake -invoke-vs-execute) – Ron
Điều này có vẻ rất trực quan đối với tôi. Bất kỳ ý tưởng nào tại sao họ làm như thế này? – marcovtwout