사용자 모델이 있습니다. 각 사용자에게는 레스토랑 이름이 있습니다. 모든 사용자를 보여주는 뷰 (index.html.erb)가 있습니다.Ruby : 일치하는 두 배열을 비교하고 DESC 순서로 결과를 정렬하십시오.
나는 (그것을 반대한다!) ... CURRENT_USER 및 다른 사용자가 내림차순으로 공통점이 얼마나 많은 레스토랑에 따라이보기에서 사용자를 주문
예를 원한다.
사용자 1 (CURRENT_USER)는 맥도날드, 버거 킹,로했다 Arby의
사용자 2는 바르의이
가은 사용자 3 맥도날드, 버거 킹에왔다
은 사용자 1 인덱스를로드 할 때에있다 보기에서 사용자가 표시되어야하는 순서는 다음과 같습니다.
사용자 1 (3/3 레스토랑 검색)
사용자 3 (2/3 레스토랑 일치)
사용자 2 (0/3 레스토랑 일치)
내 User.rb 파일
def compare_restaurants
self.restaurants.collect
end
내 users_controller.rb
def index
@users = User.all.sort_by {|el| (el.compare_resturants & current_user.compare_resturants).length }
end
@echoback 귀하의 답변을 주셔서 감사합니다. 그러나 "배열로 변환 할 수 없습니다 .." – thedeepfield
나는 작동하도록했습니다.하지만 내림차순으로 필요합니다! ive 내 코드를 업데이트 .. – thedeepfield
마지막 줄을'common_with_b <=> common_with_a'로 바꾸어 순서를 바꾸십시오. – zetetic