Использование Rails 2.3.10 Если моя библиотека lib / tasks выглядит так
lib/tasks
- a.rake
- b.rake
a.rake выглядит так:
namespace :a do
desc "Task A"
task(:a=>:environment)do
msg('I AM TASK A')
end
def msg(msg)
puts "MSG SENT FROM Task A: #{msg}"
end
end
b.rake выглядит так
namespace :b do
desc "Task B"
task(:b=>:environment)do
msg('I AM TASK B')
end
def msg(msg)
puts "MSG SENT FROM Task B: #{msg}"
end
end
Затем, когда я запускаю задачу a
rake a RAILS_ENV=sandbox
, вывод «MSG SENT FROM Task B: I AM TASK A»
Таким образом, вспомогательный метод msg (), определенный в a.rake, не вызывается. Скорее вызывается то, что определено в b.rake. (Более того, если у меня есть c.rake - тогда это вспомогательный метод msg вызывается, когда я запускаю задачу a.
Конфликтует ли пространство имен этого метода с известным поведением? Я бы подумал, что размещение имен предотвратило бы это.
Спасибо