少し遅い私は知っています..
検索結果をフィルタリングする方法としてこれを使用している場合は、私のヘルパーを見てください:)
これにより、すべての空白および不要なパラメーターが自動的に削除され、新しいパラメーターがすべて既に設定されている場合は、「選択された」クラスが追加されます。
def search_to s, args={}
selected = 0
args.each do |k, v|
selected = selected + 1 if params[k] == v.to_s || ( params[k].nil? && v.blank? )
end
if @search_params_base.nil?
@search_params_base = request.parameters.clone
@search_params_base.delete(:action)
@search_params_base.delete(:controller)
@search_params_base.delete(:page)
@search_params_base.delete_if{|k, v| v.nil? || v.blank?}
@search_params_base.delete(:utf8) if @search_params_base[:keywords].nil?
end
search_params = @search_params_base.merge(args)
search_params.delete_if{|k, v| v.nil? || v.blank?}
link_to s, search_path + '?' + search_params.to_param, :class => selected == args.length ? 'selected' : nil
end
次に、これをビューで使用できます。
search_to '$80 to $110', :price => 80..110
またはあなたの場合:
search_to '30 per page', :page => params[:page], :per_page => 30