代码中有很多这样的结构:
def fun
r = a_fun
return r unless r == 0
r = b_fun
return r unless r == 0
...
0
end
怎么把下面这一段写成一个可以公用的方法:
r = call_fun
return r unless r == 0
最后的代码可以写成:
def fun
test(a_fun)
test(b_fun)
...
0
end
我知道有一种写法可简化一点:
def fun
test = Proc.new { |a| return a unless a == 0 }
test.call(a_fun)
test.call(b_fun)
...
0
end
但是整个项目里有很多地方会用到这段逻辑,我不想在每个用到的方法里定义下面这段,怎么才能在基类里(比如 ApplicationRecord)定义呢?
test = Proc.new { |a| return a unless a == 0 }