私index
のクラスの1つのページitem
に、データベース内のエントリをフィルタリングするフォームがあります。を持つすべてのフィールドでフィルタリングできitem
、すべての要素が表されるため、コードは次のようになります。
<%= form_tag(url_for({ :controller => :item, :action => :filter }), :id => 'filter_form') do %>
<li>
<% Category.active.each do |category| %>
<% check_box_tag "categories[]", category.id, checked?(:categories, category.id) %>
<%= category.name %>
</li>
...
<% end %>
また、メソッドのコントローラーは、filter
ここで生成されたクエリを使用して、Itemのすべてのエントリをフィルタリングします。
@items = Item.includes(:category, ...)
.joins(:item)
.where(:category => params[:categories]
...
フィルタ内のすべてのフィールドについても同様です。
export
同じコントローラーに、すべてのエントリをCSVファイルとしてエクスポートするメソッドもあります。export
ビューはヘルパーメソッドの内容をレンダリングし、ここのメソッドから渡される変数@itemsをとして渡しItem.active
ます。
私が欲しいのexport_filter
は、テーブル内のすべてのエントリをエクスポートする代わりにItem
、フィルタリングされたエントリだけをエクスポートする別のメソッドを用意することです。つまり、フィルターフォームのこれらのフォームパラメーターをexport_filter
メソッドで使用できるようにし、それらを使用してビューとヘルパーに渡したいと思います。どうすればよいですか?