我可以有條件地跳過在Ruby中需要文件嗎?如何在ruby中跳過require?
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
在上面的代碼,我可以問紅寶石不讀後rescue LoadError
我可以包裝在有條件的整個代碼,但是這是不雅。我試過next
和return
。
編輯:在Can I conditionally skip loading "further" ruby code in the same file?增加了一個新問題。抱歉。沒有問這個問題的正確
肯定能。你可以有條件地「要求」某些東西,或者使用「救援」來找到失敗的東西。 –
我已經救了'LoadError',但是我希望如果執行'LoadError',則不應執行進一步的代碼。在給出的例子中,耙子任務'db:import_to_heroku'不應該叫 – deepak
請參閱「[安全需要Ruby中的gem](http://stackoverflow.com/questions/7307785/safely-require-gems-in-ruby? rq = 1)「 –