sezaru
How do you filter data based on an union field?
I have this field in my resource:
attribute :metadata, :union do
public? true
allow_nil? false
constraints types: [
credit: [type: Types.Credit, tag: :type, tag_value: :credit],
one_time_use: [type: Types.OneTimeUse, tag: :type, tag_value: :one_time_use]
]
end
Here are the respective embeds:
defmodule Core.Marketplace.Payments.Product.Types.Credit do
@moduledoc false
use Ash.Resource,
data_layer: :embedded
attributes do
attribute :skip_trace, :integer do
allow_nil? false
public? true
default 0
constraints min: 0
end
attribute :export, :integer do
allow_nil? false
public? true
default 0
constraints min: 0
end
end
end
and
defmodule Core.Marketplace.Payments.Product.Types.OneTimeUse do
@moduledoc false
use Ash.Resource,
data_layer: :embedded
attributes do
end
end
Now I want to create an read action that will filter based on what the embed is.
I tried this:
read :all_credits do
filter expr(metadata.type == :credit)
end
But this doesn’t seem to work. How can I achieve this without having to fallback to fragments?
Marked As Solved
zachdaniel
Creator of Ash
IIRC it depends on the storage_type configured. you can do metadata[:value][:type] == :credit or metadata[:type] == :credit depending on the underlying data.
1
Popular in Questions
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
I have VueJS GUIs with the project generated using Webpack.
I have Elixir modules that will need to be used by the VueJS GUIs.
I forese...
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
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Hi!
Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
Other popular topics
Hi!
In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir?
Searched the docs for ip address and the web, no good results.
Thanks!
New
I have an umbrella app.
Some of the apps inside depend on other apps in the umbrella, unsurprisingly.
I’m writing a test for one of the...
New
If I have a post route which an argument:
post /my_post_route/:my_param1, MyController.my_post_handler
How would get the post params ...
New
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something…
Haskell reminds me of Java, and e...
New
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar.
I p...
New
I am trying to run a deploy with docker and I successfully runned with this command:
docker build -t romenigld/blog-prod .
but when I t...
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









