В products_controller.rbRails - find_by_ * маршрутные
# 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
Есть что-нибудь, что я Не хватает? Есть ли другие файлы, которые я должен обрабатывать?
Update
Теперь я получаю undefined method 'size' for nil:NilClass
и я даже не уверен, что я изменился.
Запрос, выполненный рельсами, - 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' приложение/контроллеры/products_controller.rb: 52: в `марки»
@ house9, извините, но я не понимаю, что вы говорите. – rlhh
показать код вида 'app/views/products/_product.html.erb' и вызывающий код' app/views/products/brand.html.erb' - у вас есть объект nil, возможно, где вы ожидаете получить продукт объект? – house9