私は、Sortable Table Columnsに関する Ryan Bates railscast チュートリアルを見ていました。これは、いくつかの変更を加えると、彼の後のビデオの 1 つで ajax 化されます (検索、並べ替え、AJAX を使用したページ付け)。彼のソリューションはうまく機能したと思います。クリーンで、簡単に劣化します。
ただし、1 つの問題は、彼がソート機能にテーブルを使用していたという事実でしたが、代わりに選択入力を使用したいと考えています。
現在、列用と検索方向用の 2 つの選択ボックスと、ajax 要求を開始するためのリンクを設定しています (以下のスクリーンショットを参照)。
ただし、Ryan Bates がセットアップしたので、並べ替え可能な列ごとに個別のリンクがありましたが、私は 1 つのリンクしかありません。彼が持っていたものを推定し、選択ボックスの値とパラメーターをマージする方法を誰かが知っているかどうか疑問に思っていました。
これは私がこれまで持っていたものです...
<table>
<tr>
<th>Sort by</th>
<th>Order</th>
</tr>
<tr>
<td>
<%= select_tag "sort", options_for_select([["Creation Date", "created_at"], ["File Name", "name"], ["Rating", "rating_average"], ["Downloads", "downloads"]]) %>
</td>
<td>
<%= select_tag "direction", options_for_select([["Descending", "desc"], ["Ascending", "asc"]]) %>
</td>
<td>
<%= link_to "Sort", params.merge(:sort => params[:sort], :direction => params[:direction], :page => nil), :class => "icon" %>
</td>
</tr>
</table>
可能であれば、JavaScript が有効になっているユーザーのみに機能を制限する必要はありません。