Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 3 呈现集合的部分_Ruby On Rails 3_Partials - Fatal编程技术网

Ruby on rails 3 呈现集合的部分

Ruby on rails 3 呈现集合的部分,ruby-on-rails-3,partials,Ruby On Rails 3,Partials,render partial函数是否接受任何类型的集合?我试着将一组(@dogs)传入,但似乎不起作用: <%= render(:partial => "dog", :collection => @dogs, :as => :dog) %> “dog”,:collection=>@dogs,:as=>:dog)%> 我试着在文档中查找它,但它似乎没有对集合提出任何限制。。。有什么我错过了或是有其他方法可以发现的吗 谢谢 但是当我尝试将集合转换为数组时,它成功

render partial函数是否接受任何类型的集合?我试着将一组(@dogs)传入,但似乎不起作用:

<%= render(:partial => "dog", :collection => @dogs, :as => :dog) %>  
“dog”,:collection=>@dogs,:as=>:dog)%>
我试着在文档中查找它,但它似乎没有对集合提出任何限制。。。有什么我错过了或是有其他方法可以发现的吗

谢谢


但是当我尝试将集合转换为数组时,它成功了。

正确的方法是将集合传递给partials is


该方法无法处理集合,因为该方法试图使用
将集合强制为一个数组,使之成为一个数组:

def collection
  if @options.key?(:collection)
    collection = @options[:collection]
    collection.respond_to?(:to_ary) ? collection.to_ary : []
  end
end
但是
Set
s没有实现
到_ary
,因此,正如您所发现的,您必须像这样传递集合:

:collection => @dogs.to_a

这是将整个集合传递给部分集合的正确方法。但是,
render partial:“cat”,collection:@cats
为集合中的每个对象渲染一次partial,这是一件完全不同的事情。您认为基本上不要使用集合,因为大多数ruby代码只知道如何处理哈希/数组?