我在同一命名空间下有两个Rake任务,如下所示:
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
正如你所看到的,这两个任务都在同一个命名空间中,两个任务都使用server_name =’myserver’常量变量.
在相同的命名空间下定义server_name变量两次真的很丑,我如何可以有一个位置来定义这个变量,这样两个任务都可以使用它?
解决方法
尝试这个:
namespace :db do server_name='myserver' task :first_task => :environment do connect_to(server_name) end task :second_task => :environment do do_something_with(server_name) end end
命名空间可以访问在其范围之前声明的变量.