【发布时间】:2015-11-28 03:06:14
【问题描述】:
我需要一个函数来根据检查它们是否满足一些判断来获取一些东西,判断是一些需要参数的函数。如:
Something.is_close_to?(:sky)
我已经根据我在here 中学到的内容制作了一个。
def get_somethings(options = {})
somethings = []
Something.all.each do |something|
this_is_it = true
options.each_pair do |key, value|
expected_result = value.pop
this_is_it = false if !(Something.first.send(key, *value) == expected_result)
end
somethings << something if this_is_it
end
return somethings
end
我可以通过这样的方式调用这个函数:
options = {is_close_to?: ["sky", true], is_higher_than?: [2000, true]}
get_somethings()
我认为我的方式是扭曲的,所以我想知道是否有更好的方法来做到这一点。
【问题讨论】:
-
抱歉打错了,最后一行代码是:get_somethings(options)
-
我投票结束这个问题,因为它是关于如何更好地构建工作代码的。这对 SO 来说不是一个好话题。不过,对于codereview.stackexchange.com 来说,这可能是个好问题
标签: ruby-on-rails ruby