В общем то, как переменных из контроллера получить передаются в представления, назначая их как переменную экземпляра, которые представляют собой переменные, определенные с помощью @
перед ним, например @products
. Если вы хотите, чтобы переменная product
быть переданы вместе, он должен быть установлен как @product
, например, так:
@product = @products.find ...
В данном конкретном случае, вы получаете сообщение об ошибке поднятой до вашего зрения даже называется. Единственная строка в действии вашего контроллера бросает это.
Убедитесь, что @products
на самом деле установлен. Он не задан в методе #description
, так как он установлен в before_filter
здесь? Есть @products
можно позвонить #find
? В Rails мы часто видим только модель, вызывающую этот метод, например Product.find(params[:id])
.
Более того, я вижу, что вы получаете доступ к вашему хешу params
с помощью обычных скобок вместо квадратных скобок. В Ruby вы используете квадратные скобки. Это само по себе может быть причиной ошибки. Попробуйте изменить это на:
@product = @products.find(params[:id])
спасибо, что сработал. – user2150960
Добро пожаловать! – MrDanA