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