1
데이터베이스 쿼리 결과에 대한 필터로 사용하려는 복잡한 부울 메서드가 있습니다. 나는 SQL과 Mongoid DB 모두에서 작동 할 수있는 솔루션을 원한다.레일은 부울 메서드를 사용하여 쿼리 결과를 필터링합니다.
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
이러한 방법의 내용의 예는 무엇입니까 : 내 코드에서
(모두 named_scopes, 정규 표현식 및 필터링을 사용)? 당신이 당신의'where' 콜에 연결할 수있는 범위로 만들 수 있습니까? – jstim
지금은 단지 regexp입니다 ('def method1? {self.role.downcase = ~ /.*t[[[]].*/}')하지만 나중에 다른 것들을 추가하고 싶을 수도 있습니다. 나는'% Regexp % '와 같은 역할을하지만 가능한 경우 루비/레일을 사용하는 SQL 쿼리를 사용할 수 있다고 읽었습니다. –
또한 성능에 대해서는 전혀 신경 쓰지 않습니다. 복잡한 코드보다 쉽게 이해할 수 있고 비효율적 인 코드가 있습니다. –