与mongoid包装器的多重关系

时间:2011-04-18 15:27:31

标签: ruby-on-rails mongodb mongoid relationship database

我有以下问题:

我有3个模型订单,用户和应用程序,具有以下关系:

用户:

has_many :apps
has_many :orders

订单:

belongs_to :user
has_one :app

应用程序:

belongs_to :user
belongs_to :app

基于这些模型,我想用mongoid(rails mongodb-wrapper)进行以下查询:

@order = current_user.orders.new(...)
@app = @order.build_app()

结果应该是,创建了一个新的应用和订单,其中订单有app_id和user_id,新应用只有user_id。它实际上做的是,它创建了一个新的订单和新的应用程序,但只有订单中的user_id,新的应用程序保持不变。

任何建议?谢谢!

1 个答案:

答案 0 :(得分:0)

新应用应该有一个order_id,但不是用户编码的方式。此外,如果您希望它们持久存在,则需要创建而不是构建。

order = current_user.orders.create
current_user.apps.create(order: order)

将要设置的唯一ID是用于构建/创建的关系的一部分。还需要传递任何其他内容。