carlosarli
Hello everyone,
I have the following models and changesets for users and addresses:
user.ex
schema "users" do
field :title, :string
field :f_name, :string
field :l_name, :string
field :DOB, :date
field :email, :string
field :username, :string
field :password, :string, virtual: true
field :password_confirmation, :string, virtual: true
field :password_hash, :string
field :image, Assistant.Image.Type
#associations
has_one :addresses, Assistant.Web.Address
has_many :appointment, Assistant.Web.Appointment
belongs_to :role, Assistant.Web.Role
timestamps()
end
#checks the changeset of the controller to see whether the input matches the rules I set here
def changeset(model, params \\ :invalid) do
model
|> cast(params, ~w(title f_name l_name DOB email username role_id))
|> cast_attachments(params, [:image])
|> validate_required([:title, :f_name, :l_name, :DOB, :email, :username, :role_id, :image])
|> validate_length(:username, min: 2, max: 20)
|> unique_constraint(:username)
|> assoc_constraint(:role)
|> cast_assoc(:addresses, required: true)
end
Address.ex
schema "addresses" do
field :house_n, :integer
field :address_1, :string
field :address_2, :string
field :post_code, :string
field :city, :string
field :county, :string
field :country, :string
belongs_to :user, Assistant.Web.User, foreign_key: :user_id
timestamps()
end
@doc """
Builds a changeset based on the `struct` and `params`.
"""
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:house_n, :address_1, :address_2, :post_code, :city, :county, :country])
|> validate_required([:house_n, :address_1, :address_2, :post_code, :city, :county, :country])
end
When I try to delete a new user I have created it gives me this error:
constraint error when attempting to delete struct:
- foreign_key: addresses_user_id_fkey
I have searched through the forum and on stack overflow and the solution seems to be to add the foreign_key_constraint(), but I am not exactly clear on how to go on about it as I have tried following the suggestions, but so far I keep getting the same error. Has it got anything to do with the cast_assoc()? I’ve got that from the book programming phoenix but online I found varying opinions on it so I thought maybe that could be the issue.
Thank you for your help ![]()
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m aware of 2 such projects, are there others?
git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
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
Hi everyone.
My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
Hello folks!
So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
How Can I Optimise Compile Time Dependencies
I have been building an elixir application for about 2 years now. Many modules and files ha...
New
Other Trending Topics
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #hex











Showing Posts 1 to 4- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
kokolegorille
Maybe You could set the on_delete option between user and its addresses association.
By default, it will do nothing… Thus I think it is why You get this error.
For this to work, You could look at
https://hexdocs.pm/ecto/Ecto.Migration.html#references/2
and
This would be in your addresses migration
and in the schema
It is not tested, but it might help…
carlosarli
Thanks for your reply
I would also delete the cast_assoc from the changeset right?
carlosarli
It works!! it was the on_delete thing thank you
kokolegorille
Glad it works