Rails 4部分收集

时间:2013-07-26 16:07:58

标签: ruby-on-rails partial-views ruby-on-rails-4

我在这里做了一些明显错误的事情,但我没有得到它。

我有一个像这样的部分电话:

= render 'shared/purchase', collection: @purchases

@purchases在控制器中定义如下:

@purchases = current_user.purchases

但是我收到了这个错误:

app/views/shared/_purchase.html.slim where line #3 raised:

undefined local variable or method `purchase' for #<<Class:0x007fd8ca54f970>:0x007fd8ca54eb60>

然而,当我更改partial以仅渲染local_assigns时,我看到了:

[:collection, #<ActiveRecord::Associations::CollectionProxy [#<Purchase id: 40, user_id: 20, purchaseable_id: 6, purchaseable_type: "PurchaseType", frequency: "Weekly", day: "Su", notes: "leave at gate", allergies: "peanuts", created_at: "2013-07-24 16:58:08", updated_at: "2013-07-24 16:58:08", size: "Normal", quantity: 2>, #<Purchase id: 41, user_id: 20, purchaseable_id: 5, purchaseable_type: "PurchaseType", frequency: "Weekly", day: "Su", notes: "leave at gate", allergies: "peanuts", created_at: "2013-07-24 16:58:08", updated_at: "2013-07-24 16:58:08", size: "Jumbo", quantity: 3>, #<Purchase id: 42, user_id: 20, purchaseable_id: 7, purchaseable_type: "PurchaseType", frequency: "Weekly", day: "Su", notes: "leave at gate", allergies: "peanuts", created_at: "2013-07-24 16:58:08", updated_at: "2013-07-24 16:58:08", size: nil, quantity: 1>, #<Purchase id: 43, user_id: 20, purchaseable_id: 8, purchaseable_type: "PurchaseType", frequency: "Weekly", day: "Su", notes: "leave at gate", allergies: "peanuts", created_at: "2013-07-24 16:58:08", updated_at: "2013-07-24 16:58:08", size: nil, quantity: 1>]>]
[:purchase, nil]

为什么每个收集项目都没有被选为本地变量purchase

我把头发撕掉了,我确定它是愚蠢的,我以前做了很多次,甚至比较旧的工作代码,我可以&# 39;弄清问题是什么。要么它是我在文档中看不到的新Rails 4,要么我是白痴。

谢谢!

1 个答案:

答案 0 :(得分:9)

Layouts and Render in Rails上的Rails文档使用partial的{​​{1}}参数提供示例:

render