2013-07-12 3 views
8

대부분의 모델에서 기본 정렬 순서 (id desc)는 문제가 없습니다. 그러나 내 모델 중 하나에 몇 가지 범위에 대한, 그것은 순서를 뒤집기 위해 더 많이 보내거나, updated_at 필드에 의해 주문.ActiveAdmin 범위의 기본 정렬 순서 변경

다른 기능을 해치지 않고이 기능을 구현할 수없는 것 같습니다. 다른 사람이이 기능을 수행하는 방법을 가르쳐 주길 바랍니다. 내가 돌아 오는거야 객체에 .order()를 추가하려고했습니다

는 :

scope :example do |models| 
    models.order('id asc') 
end 

이 어떤 영향을 미칠 것 같지 않습니다.

또한 어떤 종류의 작품이 사용되지 않도록 시도했습니다. 원하는 방식으로 내 개체를 정렬하지만 모든 필터링/검색 기능을 완전히 중단합니다.

scope :example do |models| 
    models.unscoped.order('id asc') 
end 

무엇을할까요? 같은

+0

@ beck03076이 의견은 전혀 건설적인 것이 아닙니다. 그의 질문에 대한 답이 없다면 트롤 할 필요가 없습니다. –

+1

@rogerkk https://github.com/gregbell/active_admin/issues/312 – ahmet

+0

감사합니다. @ahmet, 인터넷 검색 때 그 문제를 찾지 못했습니다. 나는 그곳에서 제안을 시도해 왔으며, 정렬 순서는 여전히 어떻게 든 오버라이드되고있다. – rogerkk

답변

7

사용 config.sort_order : 왜 모델의 2 개 범위, 특정 정렬 순서 하나, 다른,하지

config.sort_order = "updated_at_desc" 
+2

내가 이해하는 한, 모든 범위의 정렬 순서가 변경됩니다. 나는 그들 중 일부가 다르게 분류되기를 원한다. – rogerkk

4

는, 반전 ActiveAdmin을에서 기본으로 하나를 설정? 그런 당신을 위해 작동하지 않는 경우

scope :example_asc, :default => true 
scope :example_desc 

, 아마도 당신이 뭘 하려는지 정의하는 ActiveAdmin을의 컨트롤러 블록을 만듭니다 :

controller do 
    def asc 
    Model.order('id ASC') 
    end 
    def desc 
    Model.order('id DESC') 
    end 
end 

scope :example do |models| 
    asc 
end 

scope :example do |models| 
    desc 
end 

을 그리고 마지막으로,이 대답은 매우 아마 생각 정확한 : https://stackoverflow.com/a/17612718/175825

그러나 당신은 당신이 구현할 수있는 방법에 대한 자세한 내용을 조사 할 수 있습니다 sort_order :

    그것은 가치가 무엇인지에 대한

https://github.com/gregbell/active_admin/blob/master/lib/active_admin/dsl.rb#L25

  • https://github.com/gregbell/active_admin/blob/master/lib/active_admin/dsl.rb#L97
  • , 나는 ActiveAdmin을의 마른 문서의 팬이 아니에요. 행운을 빕니다.

  • +8

    ActiveAdmin에 대해 싫어하는 것에 대한 +1. – Ricky

    1

    기본 순서를 재정의하려면 재정렬을 사용해야합니다. 이 시도!

    scope :example do |models| 
        models.reorder('id asc') 
    end 
    
    +2

    이 솔루션의 문제점은 안타깝게도 UI를 통해 다른 열을 기준으로 수동으로 정렬 할 수 없다는 것입니다. – rogerkk

    관련 문제