Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中使用部分_Ruby On Rails_Ruby On Rails 3.1_Partial Views - Fatal编程技术网

Ruby on rails 在rails中使用部分

Ruby on rails 在rails中使用部分,ruby-on-rails,ruby-on-rails-3.1,partial-views,Ruby On Rails,Ruby On Rails 3.1,Partial Views,我使用的是rails 3.1。我有一个视图products/show.html.erb,我这样调用一个partial <%= render 'productrelationships/relatedproduct',:collection => @product.relatedproducts %> inspect返回一个nil。但是,如果我在show.html.erb中尝试同样的方法,它不是零。传递值时有一些错误。我做错了什么 需要指定局部变量 <%= render

我使用的是rails 3.1。我有一个视图
products/show.html.erb
,我这样调用一个partial

<%= render 'productrelationships/relatedproduct',:collection => @product.relatedproducts %>

inspect返回一个nil。但是,如果我在show.html.erb中尝试同样的方法,它不是零。传递值时有一些错误。我做错了什么

需要指定局部变量

<%= render :partial => 'productrelationships/relatedproduct',
           :collection => @product.relatedproducts,
           :as => :relatedproduct %>
“产品关系/相关产品”,
:collection=>@product.relatedproducts,
:as=>:relatedproduct%>

找到了答案。当我在渲染时添加
:partial
时,它开始工作

<%= render :partial => 'productrelationships/relatedproduct',:collection => @product.relatedproducts %>
'productrelationships/relatedproduct',:collection=>@product.relatedproducts%>

正如您所发现的,当使用
:collection
进行渲染时,必须明确指定
:partial
。如果只调用
render“x”,:collection=>“y”
将一个名为
:collection
的变量作为
:locals
的一部分传递给partial。
<%= render :partial => 'productrelationships/relatedproduct',:collection => @product.relatedproducts %>