2011-12-07 81 views
0

我的用户模型有很多项目,每个项目都有很多发票。Ruby on Rails - 在集合中呈现集合?

我打电话以下渲染

render :partial => "layouts/allInvoices", :collection => @projects, :as => :p 

而且allInvoices里面,我想遍历每个项目的发票。

我可以使用

- p.invoices.each do |i| 

但是我宁愿使用的集合。我不确定如何将其词组化

= render :partial => "layouts/invoiceItem", :collection => p.invoices, :as => :i 

不起作用。我是否需要在控制器内设置嵌套迭代?

感谢

回答

0

你的意思是这样......

= render "layouts/allInvoices", :p => @projects 

然后

- # layouts/allInvoices 
- p.invoices.each do |invoice| 
    = render "layouts/invoiceItem", :i => invoice 

- # layouts/invoiceItem 
= i.id # this gives id of Invoice 
+0

我得到零为 '我' 与此有关。与我尝试收集的结果相同。如果我直接访问'我',而不呈现部分,它的工作,虽然。 – aperture

+0

'layouts/allInvoices'中的'发票'是什么 – axsuul

+0

你在问什么?在构造'p.invoices.each do | invoice |'中“invoice”是p.invoices每次迭代的占位符元素,其中p是Project.all每次迭代的占位符,p.invoices则是每个项目的Invoice.all。例如Project.first.Invoice.first将是“发票”的第一个实例......但这与我的问题没有任何关系。我想知道如何将集合本身​​从集合中调用时将实例变量传递给集合。 – aperture