내 모델은 다음과 같습니다주문
SERVICE_PROVIDER의 has_many 질문, ActiveAdmin을에서 SERVICE_PROVIDER
belongs_to 질문을, 인덱스 i 내 service_providers하려는 그들의 questions_count별로 정렬.
그래서, 필드를 얻기 위해, 난 정렬, 나는이처럼 내 default_scope을 정의 할 수 있습니다
scope "all", :default => true do |sp|
sp.joins("LEFT JOIN questions on questions.service_provider_id = service_providers.id")
.select("service_providers.*, COUNT(service_provider_id) as questions_count")
.group("service_providers.id")
end
내 열 정의가 보이는 같은 :
column :questions, :sortable => "questions_count" do |sp|
sp.questions_count
end
내 serviceproviders 색인, 모든 좋아 보인다. 나는 그들의 questions_count에 의해 데르 때, 나는 다음과 같은 오류가 발생합니다 :
SQLite3::SQLException: no such column: service_providers.questions_count: SELECT service_providers.*, COUNT(service_provider_id) as questions_count FROM "service_providers" LEFT JOIN questions on questions.service_provider_id = service_providers.id GROUP BY service_providers.id ORDER BY "service_providers"."questions_count" desc LIMIT 30 OFFSET 0
그래서 그는 "service_providers"에 의해 주문하는 시도 "questions_count"내림차순.. 사실, 그는 주문 "questions_count"desc합니다.
모든 제안, 어떻게 그에게 그의 주문 진술에 맞는 fieldname을 사용하도록 말할 수 있습니까?
해야한다는 불행하게도 ActiveAdmin을 보석을 건드리지 않고, 내가 코드 느릅 나무에 액세스 할 수없는 내 .order를 (생성) 범위의 경우 : sortable 옵션이 열에 대해 설정됩니다. – roman