1
我有一些复杂的布尔方法,我想用作数据库查询结果的过滤器。我想要一个适用于SQL和Mongoid DB的解决方案。Rails应用布尔方法来过滤查询结果
class Bar < ActiveRecord::Base OR include Mongoid::Document
[field :some_field]
def method1?
...
end
def method1?
...
end
这是我想什么写什么:
def self.someFunc
Bar.where(some_field: some_value).filter(method1?, method2?)
end
有没有一种简单的方法比要这么做:
def self.someFunc
results = Array.new
Bar.where(some_field: some_value).each do |result|
if result.filter1? && result.filter2?
results << result
end
end
results
end
什么是这些方法的内容的一个例子?你能把它们变成可以链接到你的“呼叫”的范围吗? – jstim 2014-08-28 19:13:39
现在它只是一个正则表达式('def method1?{self.role.downcase =〜/.*tr[e|¬¬]so.*/}')但后来我可能想添加其他一些东西。我读过其他职位,我可以使用SQL查询,比如'Where Regexp%',但如果可能的话,我宁愿使用ruby/rails的东西。 – 2014-08-28 20:17:43
另外,我并不关心性能。而不是复杂高效的代码,因此易于理解和低效的代码 – 2014-08-28 20:21:17