【问题标题】:Ecto build multiple assocEcto 构建多个关联
【发布时间】:2017-03-13 01:22:15
【问题描述】:

目前正在使用 Ecto + Postgres 从事 Phoenix 项目。创建评论时,作为评论belongs_to 用户和文章,有没有办法建立多个关联来生成一个变更集?

类似这样的伪代码

comment_changeset = build_assoc(article, :comment) 
                 |> build_assoc(user, :comment)

有什么想法吗?

【问题讨论】:

    标签: postgresql elixir phoenix-framework ecto


    【解决方案1】:

    正如贾斯汀所说,你可以使用 put_assoc 来做到这一点,所以我想这样的事情应该可以工作。

    comment_changeset =
      article
      |> Ecto.build_assoc(:comment)
      |> Ecto.Changeset.change()
      |> Ecto.Changeset.put_assoc(:user, user)
    

    【讨论】:

      【解决方案2】:

      根据您的应用程序的设置方式,您可能希望使用cast_assoc/3put_assoc/4

      文档中的相关部分是

      换句话说,cast_assoc/3 在关联数据同时与父结构一起管理时很有用。如果关联的每一方都单独管理,最好使用put_assoc/3 并直接指示 Ecto 关联的外观。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多