2013-04-15 3 views
0

Category이라는 모델이 있는데, @category.parent.siblings 또는 Category.siblings_of(params[:id])을 호출하여 현재 카테고리의 형제를 찾을 수 있지만 해당 요청 중 하나를 정렬하려고하면 메소드 오류가 발생합니다.이름과 정수로 형제 형제 정렬

내가 Category.where(:parent_id => @category.parent.id)으로 전화하면 아무 것도 나타나지 않지만 오류는 발생하지 않습니다. 내가 Category.siblings_of(params[:id]).arrange(:order => 'name')를 호출하면

undefined method `to_direction' for nil:NilClass 

는 말한다 :

undefined method `name' for #<Array:0x007fb00de57b70> 
Extracted source (around line #21): 

18:     %i.icon-plus 
19:   %li.nav-header a neighbour of: 
20:   - for neighbour in @siblings 
21:    %li= link_to neighbour.name, neighbour, :remote => true 

내가 잘 한 나는를 정렬하지 않는 한이 작업을 얻을 수 있습니다 내가 Category.siblings_of(params[:id]).sort('name')를 호출하면

나는 오류를 얻을 결과는 전혀 없지만 결과를 정렬하는 것이 왜 모든 것을 끝내는지 알고 싶습니다.

답변

2

모델에 무엇이 있는지 보지 않고도 where 검색어가 잘못되어 있는지 알기가 어렵습니다. 그러나 올바른 방법을 시도하지 않았기 때문에 일종의 정렬 일 것입니다. mongoid으로 정렬하는 일반적인 방법은 다음과 같습니다

Category.siblings_of(params[:id]).order_by(name: :asc) 

이상의 구문 옵션에 대한 docs를 참조하십시오.

+0

큰 도움이되었습니다. 이제는 문자열 대 정수로 보조 순서를 지정하는 방법을 알아야합니다. 이견있는 사람? –

+0

몽고에서 일어날 일은 없을 것입니다. 그들을 루비로 정렬하십시오. 또는 mongo의 정수로 변환하십시오. – Leopd

+0

Mongo에서 정수로 변환하는 방법은 무엇입니까? –