如何在ruby中跳过要求?

我可以有条件地跳过在Ruby中要求文件吗?

begin require 'aws-sdk' rescue LoadError puts "aws-sdk gem not found" end namespace :db do desc "import local postgres database to heroku. user and database name is hardcoded" task :import_to_heroku => [:environment, "db:dump_for_heroku"] do # code using aws-sdk gem end end 

在上面的代码中,我可以要求Ruby在rescue LoadError后不要读取
我可以将整个代码包装在条件中,但这是不优雅的。 我next试了return

编辑:添加了一个新问题我是否可以有条件地跳过在同一个文件中加载“更多”ruby代码? 。 抱歉。 没有正确地问这个问题

我已经救出LoadError但我希望如果执行LoadError,则不应该执行更多代码。 在给出的示例中,不应调用rake任务db:import_to_heroku

然后做:

 begin require 'aws-sdk' namespace :db do desc "import local postgres database to heroku. user and database name is hardcoded" task :import_to_heroku => [:environment, "db:dump_for_heroku"] do # code using aws-sdk gem end end rescue LoadError puts "aws-sdk gem not found" end 

也许在日志后添加一个exit

 begin require 'aws-sdk' rescue LoadError puts "aws-sdk gem not found" exit end namespace :db do desc "import local postgres database to heroku. user and database name is hardcoded" task :import_to_heroku => [:environment, "db:dump_for_heroku"] do # code using aws-sdk gem end end 

中止函数也是在同一个调用中记录和退出:

 abort("aws-sdk gem not found")