0

コントローラ内で、画像のデータベースを並べ替える2つの方法があります。

def index
   @picslist = Pic.order("created_at DESC")

   @picslist2 = Pic.order("price DESC")
end

私の見解の中で、私はそれらをレイアウトします:

<% @picslist.each do |pic| %>
    PICS IN HERE
<% end %>

JavaScriptのクリックイベントを使用して@picslist変数を次のように変更したいと思います。@picslist2

$("#sortbyprice").click(function(event) {

    //replace @picslist with @picslist2

});

それは正しいやり方ですか?いずれにせよ、これを行うための優雅な方法をお勧めしていただければ幸いです。

よろしくお願いします。

4

2 に答える 2

0

@picslistと@picslist2の2つのオブジェクトを作成するのは良い考えではありません。javascriptイベントが発生したときにsort_byparamsを渡します。

def index
   @picslist = Pic.order("#{params[:sort_by]} DESC")  
end

ここで、params [:sort_by]は「created_at」または「price」になります

そのようなもので、ajaxまたはフォーム送信を使用してページを更新します。

于 2013-01-07T10:58:29.563 に答える
0

あなたの助けに感謝します...私は実際にそれを行うための最良の方法は、ここで詳述されているように、本質的に結果をソートすることでした。

于 2013-01-07T13:22:19.363 に答える