与 mongoid 包装器的多重关系

发布于 2024-11-02 06:11:03 字数 549 浏览 1 评论 0原文

我有以下问题:

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

有什么建议吗?谢谢!

i have following problem:

i have 3 models orders, users and apps, with following relations:

Users:

has_many :apps
has_many :orders

Orders:

belongs_to :user
has_one :app

Apps:

belongs_to :user
belongs_to :app

based on these models, i want to make the following queries with mongoid (rails mongodb-wrapper):

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

the result should be, that an new app and order is created, where the order has an app_id and an user_id and the new app gets just a user_id. what it actually does is, that it creates a new order and new app, but only with an user_id in the order, the new app stays untouched.

any advice? thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

〗斷ホ乔殘χμё〖 2024-11-09 06:11:03

新应用程序应具有 order_id,但不具有您编码方式的用户 ID。另外,如果您希望它们持续存在,您需要创建而不是构建。

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

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

The new app should have an order_id but not a user id with the way you coded it. Also, if you want them to persist you need to create instead of build.

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

The only ids that will be set are those that are part of the relation used for the build/create. Anything else needs to be passed in.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文