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