2012-07-24 2 views
0

저는 Ruby on Rails 3.2.2를 사용하고 있습니다. ActiveRecord::Relation을 실행하여 Array에 하나의 요소가 하나만 존재한다고 주문하고 싶습니다. 그건 내가 반환하는 ActiveRecord::Relation을 가지고있는 Array 다음 : 나는/"위하여"를 첫 번째 위치-id 4 title "샘플 제목 4"와 Article 객체를 "넣어"하고 싶은 배열에 하나의 요소 만 주문하는 방법은 무엇입니까?

[ 
    #<Article id: 1, title: "Sample title 1", content: "Sample content 1">, 
    #<Article id: 2, title: "Sample title 2", content: "Sample content 2">, 
    #<Article id: 3, title: "Sample title 3", content: "Sample content 3">, 
    #<Article id: 4, title: "Sample title 4", content: "Sample content 4">, 
    #<Article id: 5, title: "Sample title 5", content: "Sample content 5">, 
    ... 
] 

Array에서 내 관련 파일을 내 뷰 파일의 첫 번째 요소로 출력 할 수 있습니다.

어떻게 만들 수 있습니까?

+0

당신은 기사와 종류 검색 할 때 그하여 가중치를 할당 할 수 있어야한다 생각. 그래서, 당신의 경우에, id = 4는 "가장 무거운 것"일 것이고, 먼저 올 것입니다. –

+0

@Sergio Tulentsev - 더 명확하게 표현할 수 있습니까? – Backo

+0

예를 들어 사용할 수 있습니다. acts_as_list-gem (https://github.com/swanandp/acts_as_list)을 통해 기사의 중요도를 높일 수 있습니다. –

답변

1

단순히이에 order, 그것은 진정한 또는 FALS 상태로 평가 주문에서 SQL을 생성합니다 사용하고이 먼저 원하는 요소를 제공합니다 :

Article.order('id = 4, title = "Sample title 4"') 

이 꽤 하드,하지만 작동합니다.

+1

* BTW * : 나는 또한'order (: id => 4)'를 사용할 수 있습니다. – Backo

+0

이 MySQL은 구체적입니까? –

0

가 나는

Article.order("id = 4 DESC") 
+0

코드가 정확히 무엇입니까? 즉, 'id = 4'(해당 레코드를 첫 번째 위치에 놓음)의 기사 레코드 만 주문하거나 다른 레코드를 주문할 때 어떤 영향을 미칩니 까? – Backo

관련 문제