최적화 질문이 있습니다. ActiveRecord를 사용하여 one_to_one 또는 one_to_many에 링크가없는 모든 엔티티를 가져 오는 요청을하는 방법을 검색합니다.relation one_to_one : 연결되지 않은 "belongs_to"엔티티 목록 가져 오기
내가 가진 :
class Model1 < ActiveRecord::Base
has_one :model2
...
및
class Model2 < ActiveRecord::Base
belongs_to :model1
...
을 내가 아닌 링크 모든 model2s의 목록을 원하는 경우에, 난 그냥 할 필요가 :
unlinked_model2s = Model2.where(:model1_id => nil)
을하지만 어떻게 모델 1에도 똑같이 적용합니까? 나는 model2에 링크되어 있지 않은 모든 model1들의 목록을 가지고있다.
나는 많은 것들을 시도했지만 작동 할 수있는 유일한 방법은, 모든 요청 끔찍 하나 하나에하는 것입니다
unlinked_model1s = Array.new
Model1.all.each do |model1|
unless model1.model2
unlinked_model1s << model1
end
end
여러분의 도움에 감사드립니다!
답장을 보내 주셔서 감사합니다. Model1.joins ("LEFT JOIN model2s ON (model2s.model1_id = model1s.id)"). 여기서 (: model2s => {: model1_id => nil}) 완벽하게 작동합니다! 대단히 감사합니다. – Polopollo