2016-08-24 238 views
1

シナリオ:ソートボタンがあります。ユーザがクリックすると、リストはnameでソートされます(これは前にcreated_atでソートされます)。Railsは、ボタンをクリックして要素を並べ替えます。

私はRubyでソートコードを実行しましたが、ユーザーがボタンをクリックしたときにどのようにわかりますか?例えば

<button id = "sort_btn">Sort by name!</button> 
... 

<%# before_sort is origin array %> 
<% sort_arr = Array.new(before_sort) %> 
<%# x[1] is the name attribute %> 
<% sort_arr.sort_by!{|x| x[1]} %> 
<%# if click sort button %> 
<% sort_arr.each do |section_layer1| %> 
<%# if did't click sort button or click twice sort button %> 
<% before_sort.each do |section_layer1|> 
    <%= render :partial => 'list', :locals => {:section => section_layer1 }%> 
<% end %> 

私は元の表示を削除して、ユーザクリックソートボタンの後に再び部分ビューをレンダリングするためにJavascriptを使用する場合がありますことを思いました。

答えて

1

Javascript!ソートテーブル

$(".sort_btn").on('click',function(){ 
    if (url.indexOf('?') > -1){ 
    url += "&sort=sort"; 
    }else{ 
    url += "?sort=sort"; 
    } 
    } 

    window.location.href = url; 

    }); 

そして、パラメータが存在する場合は、印刷:あなたはクリックで手動でGETパラメータを追加することができます。最後

<%- if params[:sort].present? %> 
    -- print sorted table -- 
<%- else %> 
    -- not sorted -- 
<% end %> 
+1

を、私は 'それからのlink_to +リモートtrue'をしての使用を選択します'respond_to js.erb'をレンダリングします。 –

関連する問題