2011-01-17 3 views
0

У меня есть сортируемые столбцы таблицы, сделанные так: http://asciicasts.com/episodes/228-sortable-table-columns И у меня есть просто параметры фильтрации для двух столбцов в таблице, сделанные с помощью select_tag (метод GET).Не удалять параметры в URL-адресе при сортировке [RAILS 3]

Эта две функции не работают вместе. Когда я меняю фильтр, параметр сортировки исчезает и обратно.

<th><%= sortable "Id" %></th> 
<th> 
    Status<br/> 
    <form method="get"> 
    <%= select_tag(:status, options_for_select([['All', 'all']][email protected], params[:status]),{:onchange => 'this.form.submit()'}) %> 
</th> 
<th><%= sortable "Operation" %></th> 
<th> 
    Processor<br/> 
    <%= select_tag(:processor, options_for_select([['All', 'all']][email protected]_names, params[:processor]),{:onchange => 'this.form.submit()'}) %> 
    </form> 
</th> 

ответ

0

хех, тривиальное решение

def sortable(column, title = nil) 
    title ||= column.titleize 
    css_class = (column == sort_column) ? "current #{sort_direction}" : nil 
    direction = (column == sort_column && sort_direction == "asc") ? "desc" : "asc" 
    link_to title, {:status => params[:status], :processor => params[:processor], :sort => column, :direction => direction}, {:class => css_class} 

конца

0

Ответ от Kamil прекрасно работает для одного контроллера. Episode 228 ставит сортируемый метод внутри application_helper, поэтому, если вы хотите использовать его в других контроллерах, вы должны добавить все параметры. Вы можете решить с params.merge

link_to title, params.merge(:sort => column, :direction => direction), {:class => css_class} 

 Смежные вопросы

  • Нет связанных вопросов^_^