2014-10-25 2 views
0

난 내 레일 애플 리케이션을 마무리하고, 일부는 내 선택에 순서대로 선택 옵션을 가지고 있지 않습니다. 나는 오른쪽에서 나오는 것들을 추측하고 있습니다. 단순히 값을 알파벳순으로 삽입 한 것입니다. 어쨌든 알파 순서가 아니며 수정하기가 그리 쉽지는 않습니다.데이터베이스 정렬 레일의 기본값

제 질문은 정말 정렬 순서를 보장하는 최선의 방법에 관한 것입니다. 나는 최근에이 레일을 읽었다 고 생각한다. 왜 데이터베이스에 의존하지 않을 것인지 모르겠다. 그래서 나는이 권한을 가지고 있지 않다. 데이터베이스에 삽입 된 순서로 아이템을 가져올 것이다.

사실이라면 "기본값"(원하는 순서대로) 항목을 유지하고 "끌어 오기"에 대한 주문을 강요하지 않아도됩니까? 많은 경우 (적어도 내 응용 프로그램에서는) 많은 경우, 각 삽입 후에 순서를 "다시 정렬"하여 원래 삽입 순서를 변경하는 것이 합리적이라고 생각합니다. 그렇게하면 주문을 다시 정렬하는 것이 더 빠를 것입니다.

이 말이 맞습니까? 논의 된 방식으로 항목을 "다시 정렬"하도록 데이터베이스에 알릴 수 있습니까? 생각?

감사합니다.

+0

더 많은 조사를 할 때 내 전제가 잘못되었을 수 있습니까? 예를 들어 postgresql 문서를 살펴보면 "보통"의미에서조차도 아무 것도 제시하지 못합니다. 어쩌면 내가 최근에 읽은 것으로 생각한 것을 잘못 읽은 것일 수도 있습니다 (다시 찾을 수 없음). – codenoob

답변

1

postgresql이 레코드를 반환하는 순서는 지정되지 않습니다. (http://www.postgresql.org/docs/9.1/static/queries-order.html 참조). default_scope를 사용하여 모델에 기본 정렬 순서를 추가 할 수 있습니다. 예 :

default_scope order('created_at DESC') 
+0

대니 감사합니다. 돌이켜 보면 제 질문이 무엇을 요구했는지 전혀 알 수 없지만 귀하의 의견은 유용했습니다! – codenoob