使您的链接成为返回产品的链接,但将类别添加为 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 的评论:
如果你想添加 Flash 消息,它会是这样的:
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?
到 flash 名称的末尾
或者,如果您想在没有产品时显示错误消息并在有产品时显示通知,则可以使其完全有条件
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