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])