0
다음 줄을 따라 뭔가를하고 싶습니다 : colleges.where("rotc.join(', ') & ?", rotc)
. 각 대학에는 rotc
문자열 속성이 있으며 (예 : "Air Force, Army, Navy"
) 사용자가 필터링 한 rotc 프로그램과 교차하는지 확인하고 싶습니다.레일스에서 두 배열의 교차를 쿼리하는 방법은 무엇입니까?
이 screenshot은 내가 작성하려고하는 것을 보여줍니다.
하나의 문제는 내가 여기 join
방법을 사용할 수 없다는 것입니다. 또 다른 문제는 내가 &
방법을 사용할 수 있다고 생각하지 않는다는 것입니다.
어떻게하면이 쿼리를 실행할 수 있습니까?
if params[:rotc] = []
colleges = College.none #or maybe College.where("rotc = ''")
else
colleges = College.all
params[:rotc].each |rotc| do
colleges = colleges.where("rotc LIKE ?, "%#{rotc}%")
end
end
아마 청소기 방법이 있습니다,하지만 어쩌면이 :
감사합니다. 코드를 조금 바꿨지 만 중요한 것은 1)'.each' 루프와 2)'% '를 사용하는'LIKE' 연산자였습니다. –
이미 알고 있었을 지 모르지만'each' 블록의'College.where [..]'는 후손을 위해'colleges.where [..]'여야합니다. –