リンクを製品に戻るリンクにしますが、URL パラメータとしてカテゴリを追加します。
次に、コントローラーで、パラメーターが存在する場合は、それに基づいて結果をフィルター処理します。そのような:
意見:
<h2> Find Product by Category </h2>
<%= link_to "Electronics", products_path(:category=>"electronics")
コントローラ
def index
if params[:category]
@products = Product.where(:category => params[:category])
else
@products = Product.all
end
end
egyamado のコメントに基づく:
フラッシュ メッセージを追加する場合は、次のようになります。
def index
if params[:category]
@products = Product.where(:category => params[:category])
flash[:notice] = "There are <b>#{@products.count}</b> in this category".html_safe
else
@products = Product.all
end
end
商品がない場合にのみメッセージを表示したい場合if @products.empty?
は、フラッシュ指定の末尾に追加するだけです
または、製品がない場合はエラー メッセージを表示し、製品がある場合は通知を表示する場合は、完全に条件付きにすることもできます。
def index
if params[:category]
@products = Product.where(:category => params[:category])
if @products.empty?
flash[:error] = "There are <b>#{@products.count}</b> in this category".html_safe
else
flash[:notice] = "There are <b>${@products.count}</b> in this category".html_safe
end
else
@products = Product.all
end
end