Как сортировать столбцы с помощью will_paginate, где данные представляют собой массив записей, а не модель - PullRequest
0 голосов
/ 18 марта 2011

У меня есть служба, к которой я обращаюсь, и я получаю данные, которые фильтрую и создаю массив записей.

Если я что-то пропустил, ActiveResource :: Base не отвечает требованиям, так как доступ к сервису осуществляется не через остальные, и я не могу использовать необработанные данные в доставленном виде.

Я отображаюданные в таблице и используйте will_paginate для пейджинга данных.Но в настоящее время я не женат на will_paginate.

Мне нужно отсортировать столбцы и страницы.

Я нашел две версии ujs_sort_helper.

Я пытаюсь понять: - http://javathehutt.blogspot.com/2009/06/mo-simple-sortable-tables-in-rails.html

Что другие сделали в рельсах 3?Или это один из пакетов ujs_sort_helper, который он правильно выбрал.

С точки зрения обновления данных это dashbaord.Несколько источников данных будут адресованы различным DIV.

Кроме того, я нуб Rails.Но не программирующий нуб.

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Вы можете использовать meta_search sort_link, если хотите. Мне нравится это, потому что это также делает фильтрацию невероятно легкой с meta_where .

Вы также можете сделать поведение через ajax, добавив атрибут data-remote к 'a.sort_link' (я сделал это через javascript).

0 голосов
/ 22 марта 2011

Я бы хотел, чтобы сопровождающий 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

Значок, который мы устанавливаем через текущую стоимость заказа. Предложение сортировки должно быть противоположным. Так что покажите стрелку вниз для списка, отображаемого в порядке возрастания, но для 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
...