相关疑难解决方法(0)

如何突破红宝石块?

这是Bar#do_things:

class Bar   
  def do_things
    Foo.some_method(x) do |x|
      y = x.do_something
      return y_is_bad if y.bad? # how do i tell it to stop and return do_things? 
      y.do_something_else
    end
    keep_doing_more_things
  end
end
Run Code Online (Sandbox Code Playgroud)

这是Foo#some_method:

class Foo
  def self.some_method(targets, &block)
    targets.each do |target|
      begin
        r = yield(target)
      rescue 
        failed << target
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我想过使用raise,但我试图让它变得通用,所以我不想把任何具体的东西放进去Foo.

ruby

407
推荐指数
5
解决办法
30万
查看次数

标签 统计

ruby ×1