Railsキャストビデオhttp://railscasts.com/episodes/240-search-sort-paginate-with-ajaxを使用しています。データベースを検索するには、2つの条件を使用する必要があります。
# In my form for search
<%= form_tag products_path, :method => 'get', :id => "products_search" do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil%>
</p>
1つの条件では、これは正常に機能します。
# In my model product.rb
def self.search(search)
if search
where(name: /#{Regexp.escape(search)}/i)
else
scoped
end
end
# In my controller products_controller.rb
@products = Product.search(params[:search]).page(params[:page]).per(5)
次に、別のパラメータで検索する必要がありますrole
。製品モデルに役割フィールドがあります。役割は1,2,3です。ロールが指定されている場合は、指定された入力ロールで文字列を検索する必要があります。それ以外の場合は、名前でのみ検索します。
def self.search(search,role)
if search
where(name: /#{Regexp.escape(search)}/i)(and role: should be equal to value of role)
また、products_controller.rbでどのような変更を行う必要がありますか?そして、私の上記の検索フォームでは?