일부 특정 분야에서 일부 특정 값을 가진다을 조회 특정 필드에서 nil 값.레일은 모든 레코드 그의 모든 관련 기록이 전무하거나 내가 <code>has_many</code>와 <code>belongs_to</code> 관계와 두 가지 모델이
0
A
답변
-1
'모든 어린이는 상태가 있습니다.'는 일반적으로 훨씬 어렵습니다! 나는 복잡한 조인 함께 할 수있는 방법이있을거야,하지만 쉽게 루비 방법은 다음과 같이 할 수 있습니다 :
parents = []
Parent.includes(:children).find_each do |parent|
parents.push(parent) if parent.children.collect{|child| child.field.nil?}.reduce(:&)
end
0
하면 자식 테이블에 가입 한 다음 attribute_to_test
인 전무를 확인 할 수 있습니까? 이 N + 1 문제를 포함하고 있기 때문에
@nillish_parents = Parent.joins(:children).where("child.attribute_to_test IS ?", nil)
@nillish_parents.each do |p|
p.name
end
이, 특히 효율적인 아니다. 차라리 시간이 좀 걸릴 것이고 SQL 솔루션을 개발할 것입니다. –
네, 확실히 최적으로 효율적은 아니지만 때로는 가독성이 진정한 효율성이라는 데 동의합니다 :) 분명히 미끄러운 슬로프가 있습니다. 모든 아이들을 결합하여 하나의 DB 임에도 불구하고 O (n * m) 쿼리 – ted
또한 @MarekLipka가 N + 1 문제를 해결하는 포함해서는 안됩니까? – ted