Tôi có hai nhiệm vụ Rake dưới cùng namespace như sau:cào biến nhiệm vụ
namespace :db do
task :first_task => :environment do
server_name='myserver'
connect_to(server_name)
end
task :second_task => :environment do
server_name='myserver'
do_something_with(server_name)
end
end
Như bạn thấy, cả hai nhiệm vụ dưới cùng namespace và cả hai nhiệm vụ sử dụng server_name='myserver'
biến liên tục. Nó thực sự trông xấu xí để xác định biến server_name
hai lần dưới cùng một không gian tên, làm thế nào tôi có thể có một nơi xác định biến này để cả hai nhiệm vụ có thể sử dụng nó?
Không, bạn không nên làm điều đó. Lý do là bạn không biết, nơi mà ngà voi đi đến. Không làm gì I. Một nhiệm vụ cào được khai báo bằng cách sử dụng một khối, không phải là một lớp, và do đó bối cảnh của ivar là không rõ ràng. – meandre
@meandre Sự cố khi sử dụng biến mẫu theo cách này là gì? Bạn có thể chứng minh nơi nó có thể đi sai? Bạn có đề xuất nào tốt hơn không? Xem phần "Các biến thể trong các nhiệm vụ" trong http://daneharrigan.com/2010/06/rake-tasks-102/ để thảo luận chi tiết hơn. –
@meandre Trên thực tế, các biến mẫu được định nghĩa theo cách tôi hiển thị được đánh giá trong ngữ cảnh của 'Rake.application.in_namespace (tên, & chặn)' (xem https://github.com/jimweirich/rake/blob/v10.3.2 /lib/rake/dsl_definition.rb#L140). Tôi không chắc bạn quan tâm đến điều gì. –