【问题标题】:Multiple relations with mongoid wrapper与 mongoid 包装器的多重关系
【发布时间】:2011-04-18 15:27:30
【问题描述】:

我有以下问题:

我有 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,新应用程序保持不变。

有什么建议吗?谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    唯一要设置的 id 是用于构建/创建的关系的一部分。其他任何东西都需要传入。

    【讨论】:

    • current_user.apps.create 将为该关系设置适当的 id,所以应该很好。
    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多