2011-03-18 2 views
0

서비스를 쿼리하고 데이터를 필터링하여 레코드 배열을 만듭니다.will_paginate를 사용하여 열을 정렬하는 방법 데이터가 모델이 아닌 레코드 배열 인 경우

내가 놓친 것을 제외하고는 ActiveResource :: Base는 서비스에 대한 액세스가 휴식이 아니므로 자격이 없습니다. 원시 데이터를 전달 된대로 사용할 수 없습니다.

테이블에 데이터를 표시하고 will_paginate를 사용하여 데이터를 페이지로 표시합니다. 그러나 나는 현재 will_paginate와 결혼하지 않았습니다.

페이지 매김뿐만 아니라 열을 정렬해야합니다.

두 가지 버전의 ujs_sort_helper를 발견했습니다.

이해하려고 : - 다른 레일 3에서 수행 한 내용을 http://javathehutt.blogspot.com/2009/06/mo-simple-sortable-tables-in-rails.html

? 아니면 ujs_sort_helper 패키지 중 하나입니다.

데이터 새로 고침시 이는 대시 보드입니다. 다중 데이터 소스는 다양한 DIV를 처리합니다.

또한 레일 멍청합니다. 그러나 프로그래밍 멍청한 놈이 아닙니다.

답변

1

원하는 경우 meta_search의 sort_link를 사용할 수 있습니다. meta_where을 사용하면 매우 쉽게 필터링되기 때문에 좋아요.

또한 'a.sort_link'에 데이터 원격 속성을 추가하여 아약스를 통해 동작을 만들 수도 있습니다 (자바 스크립트를 통해 완료했습니다).

+0

그래서 결과를 sqlite 데이터베이스에 저장했습니다. 데이터는 하나의 테이블을 가질 수 있고 다른 테이블은 타임 스탬프만으로도 충분히 정적 인 데이터입니다. N 분마다 다시 작성하십시오. 나는 자동 완성으로 id 필드를 설정하고 다른 필드에 인덱스를 설정할 수 있다고 생각한다. 그것은 훨씬 더 효율적 일 것입니다. 고통이었습니다. 모든 레코드를 하나의 생성물로 추가하는 대신 각 필드를 설정하고 저장해야했습니다!다른 데이터 소스에서 캡처 한 ID 값이 필요했기 때문입니다. – mpechner

0

나는 ujs_sort_helper의 관리자에게 의견을 말하기를 환영합니다. 그냥 여기 저기에 코드의 3 버전 레일에 버그. 이제 ujs_sort_helper가 작동합니다.

내가 수행하지 않은 것은이 패키지에서 다른 지점을 만드는 것입니다. 저자에게 파일을 이메일로 보냈습니다.

정렬 순서는 이제 기호 대신 기호를 문자열과 비교합니다.

def sort_order(column, initial_order='asc') 
    #safe since to_sm on a sym is a nil operation. At least for now. 
    if session[@sort_name][:key].to_sym == column.to_sym 
     session[@sort_name][:order].downcase == 'asc' ? 'desc' : 'asc' 
    else 
     initial_order 
    end 
    end 

아이콘은 현재 주문 값을 통해 설정합니다. sort 절은 반대가되어야합니다. 따라서 오름차순으로 표시되는 목록의 화살표를 표시하지만 'url'은 표를 내림차순으로 다시 표시하도록 설정됩니다.

나는 : q 기호가 사용 된 것으로 추정됩니다.

def sort_header_tag(column, options = {}) 
    options[:initial_order].nil? ? initial_order = "asc" : initial_order = options[:initial_order] 
    key = session[@sort_name][:key].to_sym 
    order = sort_order(column, initial_order) 
    caption = options.delete(:caption) || column.to_s.titleize 

    url = { :sort_key => column, :sort_order => order, :filter => params[:filter]} 
    url.merge!({:q => params[:q]}) unless params[:q].nil? 

    content_tag('th', link_to(caption, url, :class=>session[@sort_name][:order]), :class => "sort_link #{order if key == column}") 
    end 
관련 문제