thojanssens1
Preload associations in embeds?
Say I have the following schemas:
defmodule Articles do
schema "articles" do
field(:name, :string)
embeds_one(:foo, Foo)
end
def changeset(struct, attrs) do
struct
|> cast(attrs, [:name])
|> cast_embed(:foo)
end
end
defmodule Foo do
@primary_key false
embedded_schema do
field(:name, :string)
belongs_to(:country, Country)
end
def changeset(struct, attrs) do
struct
|> cast(attrs, [:name])
|> cast_assoc(:country)
end
end
defmodule Country do
schema "countries" do
field :name, :string
end
end
If I try to run the code below, I’ll have the error:
** (RuntimeError) attempting to cast or change association
countryfromFoothat was not loaded. Please preload your associations before manipulating them thr
ough changesets
attrs = %{
name: "An article",
foo: %{
country: %{name: "Fiji"}
}
}
%Article{}
|> Article.changeset(attrs)
|> Repo.insert!()
If I try to preload:
%Article{}
|> Repo.preload([foo: :country])
I’ll have the error:
** (ArgumentError) schema Article does not have association :foo
First Post!
LostKobrakai
Last Post!
BradS2S
Great news! Associations work inside of embeds. You have a small typo.
:country should be :countries. ![]()
I compiled it and it ran fine.
0
Popular in Questions
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set?
Thanks.
New
Hi everyone!
I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
Hello!
Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
Other popular topics
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
What learn first? Rust or Elixir
Hi Elixir community!
I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
Hello all!
I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
15:22:35.803 [error] gen_event {lager_file_backend...
New
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









