2012-03-01 4 views
2

ActiveRecord는 나에게 일련의 사용자를 돌려줍니다. User 객체에서 유지되지 않은 데이터를 사용하는 복잡한 함수로 이러한 사용자를 정렬하려고합니다.Ruby에서 클래스 메소드로 정렬 구현

데이터가 지속되지 않을 때 범위를 사용하는 방법이 있습니까?

클래스의 방법으로 정렬 함수를 작성하는 방법이있다, 그래서 전화처럼 할 수있다 : 나는 이런 식으로 할 수는 없습니다 생각

sorted_users = User.first(20).sorted_my_way 

답변

3

.

User.first(20).sorted_my_way과 같이 호출 할 수있는 클래스 메서드와 범위를 정의 할 수는 있지만 만드는 쿼리에만 물건을 추가 할 수 있습니다.

class User 
    self.sorted_my_way(limit) 
    first(20).sort_by {...} 
    end 
end 
User.sorted_my_way(20) 

당신이 블록 스타일의 방법을 사용하는 것입니다 할 수있는 또 다른 한가지 : 내가하지

class User 
    self.sorted_my_way 
    yield.sort_by {...} 
    end 
end 
User.sorted_my_way { first(20) } 
+0

당신이 루비에서 정렬 할 경우에, 나는 당신이 좋아하는 모든 물건을 포장 할 필요가 있다고 생각 범위로는 불가능한 것처럼 보입니다. 귀하의 제안은 좋았습니다 (그리고 그것을 사용하지는 않았지만 수율에 대한 입문서에 감사드립니다). – Jason

+0

대단하군요. 고맙습니다! – jeffdill2

관련 문제