rails3初心者 複数の絞込検索
絞り込み条件で、メーカーやカテゴリを選択してから
金額指定があれば、金額指定も含めて検索結果を実装する事はできますか?
またボタンは1個にする形にしたいです。
よろしくお願い致しますm(_ _)m
絞込み検索内容
==========
・メーカー (チェックボックス式)
・カテゴリ (チェックボックス式)
・金額指定
==========
====================
views:
====================
<p>条件検索(複数選択可)</p>
<%= form_tag ({:controller => :products, :action => :check }), {:method => :get} do %>
<p>メーカーから探す</p>
<% Maker.all.each do |maker|%>
<%= check_box_tag "maker_id[]", maker.id, (params[:maker_id].include?(maker.id.to_s) if params[:maker_id]) %>
<%= maker.maker_name %><br />
<% end %>
<p>カテゴリから探す</p>
<% Category.all.each do |c| %>
<%= check_box_tag "category_id[]", c.id, (params[:category_id].include?(c.id.to_s) if params[:category_id]) %>
<%= c.name %><br />
<% end %><br />
<%= submit_tag "検索"%> #このボタンを外してひとつのボタンにしたいです。
<% end %>
<p>金額を指定して絞り込む</p>
<%= form_tag ({:controller => :products, :action => :search_price }), {:method => :post} do %>
<%= text_field_tag "price1",(params[:price1] if params[:price1]) %> ~
<%= text_field_tag "price2",(params[:price2] if params[:price2]) %>
<%= submit_tag "検索"%>
<% end %>
====================
products_controller.rb
====================
def check
@product = Product.all
if params[:maker_id] && params[:category_id] # 両方選択された場合
@products = Product.where(:category_id => params[:category_id], :maker_id => params[:maker_id] )
elsif params[:maker_id] #makerが選択された場合
@products = Product.where(:maker_id => params[:maker_id]) if params[:maker_id]
elsif params[:category_id] #カテゴリが選択された場合
@products = Product.where(:category_id => params[:category_id]) if params[:category_id]
elsif params[:maker_id] == nil && params[:category_id] == nil #両方ともチェックがなかった場合
@products = Product.all
end
render :action => 'check'
end
def search_price
@products = Product.where('price >=? AND price <=?', params[:price1],params[:price2])
@products = Product.where('price >=?', params[:price1]) if params[:price2].blank?
@products = Product.where('price <=?', params[:price2]) if params[:price1].blank?
render :action => 'index'
end
ややこしくてすみません^^;
どうぞよろしくお願い致します。
お礼
いろいろ試してたら出来ました。ありがとうございます!