0

我有一个代表每周订单的数据模型。例如。我的订单可能是

Monday: 2 x coffee
Tuesday: 2 x tea
Wednesday: 3 x coffee, 4x tea 

我在周末支付我的订单。

我将其表示为:

Order
   has_many: days

Day
   has_many: line_items

我有一种形式:

form_for @order
   fields_for :days
       fields_for :line_items

产生一个像

Monday
   Tea x 2
   Coffee x 0
Tuesday
   Tea x 1
   Coffee x 3
Wednesday
   Tea x 1
   Coffee x 2

我希望我的表格是这样的表格:

            Monday     Tuesday     Wednesday

Coffee       2           1           1 
Tea          0           3           2
Add+

我可以通过遍历 Order.days.each do |day| 来做到这一点 day.each 等试图找出输入字段“order[]days[]line_items[]”的名称,并为 line_item 和 day 添加隐藏变量,但结果却比最初看起来更难。

我错过了更简单的方法吗?

4

1 回答 1

0

我这样做的方法是在哈希中构建表单元素,然后将它们添加到表单中

form_for @order
  fields_for :days
      fields_for :line_items
          hash[line_item.product][day.theday] = select_tag...

然后遍历天数和产品并在表格中放入适当的选择标签

于 2012-06-21T22:24:40.197 回答