在products_controller.rb
中 # GET /search/'brand'
def brand
@product = Product.find_all_by_brand(params[:brand])
respond_to do |format|
format.html # brand.html.erb
end
end
在routes.rb
中match '/search/:brand' => 'products#brand'
如果我尝试访问localhost:3000/search/Apple
,我会收到以下错误Couldn't find Product with id=Apple
有什么我想念的吗?我还应该处理其他文件吗?
更新
现在我得到了undefined method 'size' for nil:NilClass
,我甚至不确定我改变了什么。
rails执行的查询是select "products".* FROM "products" WHERE "products"."brand" = 'Apple' ORDER BY last_seen DESC
,它们似乎返回正确的产品。
应用程序跟踪
应用程序/视图/产品/ _product.html.erb:1:在
_app_views_products__product_html_erb___2255278_29707176' app/views/products/brand.html.erb:1:in
_ app_views_products_brand_html_erb___464952485_38589588' app / controllers / products_controller.rb:52:in“brand”
答案 0 :(得分:1)
控制器中的注释表明您可能想要/ search / brand / Apple。
答案 1 :(得分:0)
发现错误,错误页面正在接收product
而不是products
。输入错误。