carlgleisner

carlgleisner

Is it supported to have eager_check?: true run on identities when the identity consists of more than one attribute?

I have a compound identity that indeed returns errors on submission with Postgres as data layer. On another resource using an identity with a single attribute I do get eager checking on validation however, as one would expect of course.

identities do
    identity :imaginative_party_name, [:host_id, :party_name] do
      eager_check? true
      message "success not possible if you insist on reusing party names all the time"
    end
  end

Looking at the documentation I cannot tell that this would not be supported. If so, then maybe this could be pointed out?

Showing Posts 1 to 5

zachdaniel

zachdaniel

Creator of Ash

Are you saying that eager checking is not working for your compound identity?

carlgleisner

carlgleisner OP

Yes I’m sorry for failing to make that explicit.

I’ll revert with a reproduction (have a few of those outstanding at the moment).

zachdaniel

zachdaniel

Creator of Ash

Interesting. It should work :slight_smile: If not then its a bug.

carlgleisner

carlgleisner OP

It works :slightly_smiling_face:

The thing was that I was using argument for the input of the key of the related record together with a change with manage_relationship. As I understand it now this is intended behaviour.

I dug up a few of your messages in the Discord which I think explain it:

I think you [i.e. another person] may be running into an issue around when managed relationships actually happen. Managing relationships is a bit special insofar as the logic to actually do so is handled by calling the action.

So when your validation runs, the technician_id is never going to be set.

You have a few options:

  1. don’t use managed relationships for the belongs_to relationship
  2. run your validation in an after_action hook in a custom change
  3. run your validations in the action, based on the arguments instead

You put examples in there as well, very helpful. Maybe I could copy these here as well if appropriate?

Humbly, maybe a note in the documentation could be of use for others? I’d be happy to provide a PR as a starting point if desirable.

Sidenote

I’m yet to try out the solutions you suggested since for now it’s just fine for me to not use argument+change. But I did wonder whether that also solves not getting errors after submission when passing in input that does not relate to the id of an existing record.

Reference codebase

I used this little reproduction for testing for future reference.

But I guess it’s technically not a “reproduction” when there is no actual issue :slight_smile:

https://github.com/carlgleisner/ash_phoenix_reproduction

EDIT: I should edit the title of this post for posterity

zachdaniel

zachdaniel

Creator of Ash

You would have my utmost gratitude :bowing_man:

This one would probably be a separate issue? Likely has something to do with input names not matching? But curious to see if its still an issue after your change :slight_smile:

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
water
I’m aware of 2 such projects, are there others? git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
peck
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
bradley
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
unaware8150
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
Alvinkariuki
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
leoschweizer
Hi, we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New

Other Trending Topics Top

mudasobwa
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
KristerV
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
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
juhalehtonen
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
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
budgie
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

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews