大量にあるデータをセレクターフォームを使って絞り込み、抽出されたデータをテーブルで表示するページを作成しました。
ajax
,js.erb
で動的に変更する仕様となってます。
このテーブルから他のページに遷移したあとに元ページにリダイレクトすると当然最初から読み込まれてしまい先ほどの抽出されたデータをセレクトフォームから選び直さないといけなくなります。
頻繁に元ページに戻るため一度抽出したデータを固定して選びなおす手間を省きたいのですが、何か方法はあるのでしょうか?
よろしくお願いします。
参考
<%# view.html.erb %> <%= select_tag 'bigIndex', options_for_select(@arrayBigIndex), id: 'bigIndex', class: 'btn btn-default' %> <%= select_tag 'middleIndex', options_for_select(@arrayMiddleIndex), id:"middleIndex", class: 'btn btn-default' %> <div id="change"></div>
<%# _table.html.erb %> <table class="table"> <tr class="thread"> <th>smallIndices1</th> <th>smallIndices2</th> </tr> <tbody> <% @wholeIndices_csv.each do |index| %> <% if index.bigIndex == @bigIndex && index.middleIndex == @middleIndex %> <tr> <td data-label="smallIndices1"><%= index.smallIndices1 %></td> <td data-label="smallIndices2"> --<%# 以下省略 %>--
// js.erb $("#bigIndex").html("<%= escape_javascript(select_tag 'middleIndex', options_for_select(@arrayMiddleIndex) %>"); $("#change").html("<%= escape_javascript(render :partial => 'table'); %>");
# controller @wholeIndices_csv = Index.includes(user: :pictures).where("user_id=?", @user.to_i) @bigIndex = params[:bigIndex] # ajaxで取得 @middleIndex = params[:middleIndex] # ajaxで取得 # bigIndexセレクトフォーム用の配列を準備 @arrayBigIndex = Array.new @wholeIndices_csv.each do |csv| @arrayBigIndex.push(csv.bigIndex) end if @arrayBigIndex.nil? == false @arrayBigIndex = @arrayBigIndex.uniq # 配列に重複を避ける # middleIndexセレクトフォーム用の配列を準備 if @bigIndex.nil? && @middleIndex.nil? @arrayMiddleIndex = Array.new elsif @bigindex.nil? == false && @middleIndex.nil? @arrayMiddleIndex = Array.new @wholeIndices_csv.each do |csv| if csv.bigIndex == @bigIndex @arrayMiddleIndex.push(csv.middleIndex) end end @arrayMiddleIndex = @arrayMiddleIndex.uniq elsif @bigIndex.nil? == false && @middleIndex.nil? == false @arrayMiddleIndex = Array.new @wholeIndices_csv.each do |csv| if csv.bigIndex == @bigIndex @arrayMiddleIndex.push(csv.middleIndex) end end @arraymiddleIndex = @arrayMiddleIndex.uniq end
読みにくい下手なコードです。要はセレクターでデータベースのカラム、bigIndexとmiddleIndexを選んで複数のsmallIndicesをテーブルにします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/13 06:38
2019/02/13 07:18
2019/02/20 06:52
2019/03/01 09:46