[英]Not delete params in URL, when sorting [ RAILS 3 ]
我有可排序的表列,其格式如下: http ://asciicasts.com/episodes/228-sortable-table-columns並且我只對表中兩列的過濾器選項進行了過濾,這些列是在select_tag(GET方法)上進行的。
這兩個功能不能同時使用。 當我更改過濾器時,排序參數反而消失了。
<th><%= sortable "Id" %></th>
<th>
Status<br/>
<form method="get">
<%= select_tag(:status, options_for_select([['All', 'all']]+@statuses, params[:status]),{:onchange => 'this.form.submit()'}) %>
</th>
<th><%= sortable "Operation" %></th>
<th>
Processor<br/>
<%= select_tag(:processor, options_for_select([['All', 'all']]+@processor_names, params[:processor]),{:onchange => 'this.form.submit()'}) %>
</form>
</th>
Kamil的答案對於單個控制器來說效果很好。 第228集將可排序方法放在application_helper中,因此,如果要在其他控制器中使用它,則必須添加所有參數。 你可以用params.merge解決
link_to title, params.merge(:sort => column, :direction => direction), {:class => css_class}
呵呵,平凡的解決方案
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}
結束
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.