创建保存多条记录的订单

时间:2016-04-26 20:50:11

标签: ruby-on-rails forms ruby-on-rails-4

我有产品型号和订单型号(可能更好地称为order_item)。用户将在每周工作日创建订单,并在下周开始之前删除。 该产品有多个订单和一个订单belongs_to产品。

我想显示所有产品的表单,用户可以在其中输入他们想要的每个产品的数量,并且每个产品都将保存在订单表中,并带有以下字段:product_id,:amount,:user_id,:date 。 通过这些字段,我可以找到并显示每个用户的每日订单,但我不知道如何创建表单,以便为表格中的每个产品保存新的订单记录

我该如何创建? 我看过嵌套表格,但这似乎不适合......

1 个答案:

答案 0 :(得分:0)

这可能是has_many :through association的一个很好的用例。它的行为方式与多对多关联类似,但它允许您在其自己的模型中存储有关关系的其他信息。在您的情况下,您在订单模型上有日期和金额。

你要设置这样的模型:

class User < ActiveRecord::Base
    has_many :orders
    has_many :items, through: :orders
end

Class Item < ActiveRecord::Base
    has_many :orders
    has_many :users, through: :orders
end

Class Order < ActiveRecord::Base
    belongs_to :item
    belongs_to :user
end