2013-03-22 2 views

ответ

0

В общем то, как переменных из контроллера получить передаются в представления, назначая их как переменную экземпляра, которые представляют собой переменные, определенные с помощью @ перед ним, например @products. Если вы хотите, чтобы переменная product быть переданы вместе, он должен быть установлен как @product, например, так:

@product = @products.find ... 

В данном конкретном случае, вы получаете сообщение об ошибке поднятой до вашего зрения даже называется. Единственная строка в действии вашего контроллера бросает это.

Убедитесь, что @products на самом деле установлен. Он не задан в методе #description, так как он установлен в before_filter здесь? Есть @products можно позвонить #find? В Rails мы часто видим только модель, вызывающую этот метод, например Product.find(params[:id]).

Более того, я вижу, что вы получаете доступ к вашему хешу params с помощью обычных скобок вместо квадратных скобок. В Ruby вы используете квадратные скобки. Это само по себе может быть причиной ошибки. Попробуйте изменить это на:

@product = @products.find(params[:id]) 
+0

спасибо, что сработал. – user2150960

+0

Добро пожаловать! – MrDanA

0

Вы можете передать переменные из контроллера взглядов с использованием @

примера контроллера:

@my_var = 'toto' 

ввиду

<%= @my_var %> 
+0

Я сделал то же самое – user2150960

Смежные вопросы