Rails,渲染集合

时间:2016-07-04 09:04:55

标签: ruby-on-rails

我必须渲染这样的订单集合:

= render partial: 'order_row', collection: @order_items, as: order_item

在我的部分中,我必须多次使用order_item.product。有没有办法说产品是order_item.product?我尝试使用locals: {product: order_item.product},但看起来order_item只能在渲染的部分中使用。换句话说,如何将此.each块转换为渲染。

  - @order_items.each do |order_item|
    = render 'order_row', product: order_item.product, order_item: order_item

2 个答案:

答案 0 :(得分:0)

在部分内部,你仍然可以分配变量:

= render partial: 'order_row', collection: @order_items, as: :order_item

部分:

- product = order_item.product
%p Then goes your partial

答案 1 :(得分:0)

您可以在渲染之前映射您的集合,例如:

= render partial: 'order_row', collection: @order_items.map(&:product), as: order_item