내 Campaign
모델은 has_many Response
입니다. 내가하고 싶은 무엇레일은 has_many가 비어 있지 않습니다.
는
Campaign.where.not(responses.nil?)
는 기본적으로 응답이 모든 캠페인의 목록을 반환처럼 검색입니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
당신은 SQL이 같은Responses
으로 만
Campaign
레코드를 반환하기 위해 가입 할 수
내 Campaign
모델은 has_many Response
입니다. 내가하고 싶은 무엇레일은 has_many가 비어 있지 않습니다.
는
Campaign.where.not(responses.nil?)
는 기본적으로 응답이 모든 캠페인의 목록을 반환처럼 검색입니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
당신은 SQL이 같은Responses
으로 만
Campaign
레코드를 반환하기 위해 가입 할 수
당신은 join
으로 쿼리를 수행 할 수 있습니다 :
Campaign.joins(:responses)
또는 join
이없는 검색어로
Campaign.where(id: Response.pluck(:campaign_id))
: Campaign.joins(:responses)
그것은 생산할 예정 SQL과 같은 : SELECT campaigns.* FROM campaigns INNER JOIN responses ON responses.campaign_id = campaign.id