は私がレストランや食事のために検索し、カテゴリ(フランス料理、インド、足など)検索バー+ selectタグは
のindex.htmlでフィルタリングすることができるようにする検索バー+ドロップダウンリストを持っているレール。 ERB
<%= form_tag meals_path, method: 'get', id: 'products_search' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= select_tag :search_category, options_for_select(@categories, @categories[0]) %>
<%= submit_tag "Rechercher", name: nil %>
</p>
<% end %>
meals_controller.rb
@meals_search = @meals.search(params[:search], params[:search_category])
モデル/ meal.rb
def self.search(search, search_category)
if search
if search && search_category == "All"
where('name LIKE ?', "%#{search}%")
elsif search == "" && search_category != "All"
where('category = ?', "%#{search_category}%")
else
where('name LIKE ? AND category = ?', "%#{search}%", "%#{search_category}%")
end
else
all
end
end
検索バーは完全に機能しますが、カテゴリフィルタ(search_category)は機能しません。私は実際に空のリストを取得しますが、少なくとも1つのレストランや食事があるカテゴリでのみフィルタリングできます(リストは空にできません)。
where('category = ?', search_category)
01へ
where('name LIKE ? AND category = ?', "%#{search}%", search_category)
と
where('category = ?', "%#{search_category}%")
に
where('name LIKE ? AND category = ?', "%#{search}%", "%#{search_category}%")
を変更する
'where( 'category =?'、search_category)'を試すことができますか?また、どのデータ型がカテゴリですか? – Aakanksha
フォーム送信時にparamsを投稿できますか? – SRack
質問には従いませんでしたが、 '=='が '&& 'より優先されます。 – marmeladze