ruby - 我如何从佣金任务中提早返回?

标签 ruby rake

我有一个 rake 任务,我在开始时会做一些检查,如果其中一项检查失败,我想提前从 rake 任务返回,我不想执行任何剩余的代码。

我认为解决方案是在我想从代码返回的地方放置一个返回,但我收到以下错误

unexpected return

最佳答案

Rake 任务基本上是一个 block 。除了 lambda 之外, block 不支持返回,但您可以使用 next 跳到下一条语句,这在 rake 任务中与在方法中使用 return 具有相同的效果。

task :foo do
  puts "printed"
  next
  puts "never printed"
end

或者您可以将代码移动到方法中并在方法中使用 return。

task :foo do
  do_something
end

def do_something
  puts "startd"
  return
  puts "end"
end

我更喜欢第二个选择。

关于ruby - 我如何从佣金任务中提早返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316475/

相关文章:

ruby - 如何使用 ruby​​ 正则表达式从标签中提取 href?

ruby - 使用 ruby​​ 和 selenium 时如何使用 headless chrome 启用远程调试?

mysql - Rake:数据库迁移因预先存在的 mySQL 数据库而失败

unit-testing - 将 validates_uniqueness_of 添加到模型中会导致功能测试失败

ruby-on-rails - 只进行一次迁移

ruby-on-rails - Rails 3.1 引擎 rake 分贝 :test:prepare task missing

ruby - 404 找不到资源 : domain with Google Directory API

Ruby TCP 套接字永远不会得到回复

ruby - 运行 ruby​​w 或使用 ocra 构建的 exe 时弹出 Cmd

ruby - Cronjob 不适用于 rake 命令