fschuindt

fschuindt

Hi there, folks. I’m struggling with this issue for quite some time… It’s with Ecto embedded schemas…

Consider the following:
Orders embeds many Items.

I have the following on the Order schema:
embeds_many :items, Schemas.Order.Item, on_replace: :delete

In the same Schema, I have created the following function:

  @doc """
  Updates a given `t:OPS.DataBase.Schemas.Order/0` in the
  database. (Permits the update of the "items" embeded schema)
  """
  @spec update_with_items(t(), map(), list(Schemas.Order.Item.t())) :: response()
  def update_with_items(order, params, items) do
    order
    |> cast(params, @update_params)
    |> put_embed(:items, items)
    |> Repo.update()
  end

So for a given Order, I can update some parameters on it, but also can update the list of Items.
It does update the parameters, but will not update the list of items.

Here’s a example of the list of items I’m passing to the function:

[
  %OPS.DataBase.Schemas.Order.Item{
    id: "4e903100-07ff-4096-b0f0-8bc88c50c630",
    image: "image",
    name: "item 1",
    picked: false,
    price: nil,
    product_id: 987654,
    quantity: 2,
    supplier_store_id: "64ac2f41-dcf4-43d1-82b7-da994c99ba57",
    title: nil,
    variant_id: 99999,
    variant_title: "variant_title",
    vendor: "vendor"
  },
  %OPS.DataBase.Schemas.Order.Item{
    id: "b8972930-9d94-470a-90ad-abcf67c3c57e",
    image: "image",
    name: "item 2",
    picked: false,
    price: nil,
    product_id: 657321,
    quantity: 2,
    supplier_store_id: "454545454545",
    title: nil,
    variant_id: 88888,
    variant_title: "variant_title",
    vendor: "vendor"
  }
]

This is during my tests, and it’s not updating the Items of an Order.
Note that those items contains the ID already, I don’t think those matter to be honest, but I’m about to remove them to see if it works.

I’m kinda clueless here, any help/tip will be welcome.

Thank you!

First Post!

tfwright

tfwright

Passing a list including ids should work fine. I haven’t had any trouble doing that. What is the output of the function? If it’s not raising an error, my first guess would be this behavior described in the docs:

If the embed has no changes, it will be skipped.

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews