Ruby on rails 需要将参数从控制器传递到.html.erb文件

Ruby on rails 需要将参数从控制器传递到.html.erb文件,ruby-on-rails,Ruby On Rails,我的控制器代码: def description product = @products.find(params(:id)) end 这在控制器中,我必须将产品变量传递到description.html.erb。我该怎么做 在StoreController#description中,它给了我一个ArgumentError,您可以使用@将变量从控制器传递到视图 控制器中的示例: @my_var = 'toto' 鉴于 <%= @my_var %> 通常,将控制器变量

我的控制器代码:

def description  
   product = @products.find(params(:id))  
end
这在控制器中,我必须将产品变量传递到
description.html.erb
。我该怎么做


StoreController#description
中,它给了我一个
ArgumentError
,您可以使用
@
将变量从控制器传递到视图

控制器中的示例:

@my_var = 'toto'
鉴于

<%= @my_var %>

通常,将控制器变量传递到视图的方式是将它们作为实例变量分配,实例变量是在前面定义了
@
的变量,例如
@products
。如果希望传递
product
变量,则必须将其设置为
@product
,如下所示:

@product = @products.find ...
在这种情况下,甚至在调用视图之前都会出现错误。控制器操作中唯一的一行就是抛出这个

确保实际设置了
@products
。它不是在
#description
方法中设置的,所以它是在
过滤器之前设置的吗?
@products
是否能够调用
#find
?在Rails中,我们通常只看到调用此方法的模型,例如
Product.find(params[:id])

此外,我看到您正在使用普通括号而不是方括号访问
params
散列。在Ruby中使用方括号。这可能就是导致错误的原因。尝试将其更改为:

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