0

私は、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 が有効になっているユーザーのみに機能を制限する必要はありません。

4

1 に答える 1

1

AFAICS、選択タグのパラメーターは、他のパラメーターとほぼ同じ方法で取得されるため、それらをマージすると同じように機能するはずです。params[:sort]唯一の違いは、選択タグに渡す必要があることです。ここで、現在選択されている値を渡す方法を見てください。

http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag

http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/options_for_select

これはフォーマットを示唆しています:

<%= select_tag "sort", options_for_select([["Creation Date", "created_at"], ["File Name", "name"], ["Rating", "rating_average"], ["Downloads", "downloads"]], params[:sort]) %>
于 2012-07-17T23:48:57.553 に答える