dmitriid
At one point I’ll wrap my head around the new changes to resource attributes in Ash, I promise ![]()
Meanwhile here’s an issue I have:
module Quire.Blog.Page do
actions do
defaults [
:read,
:destroy,
create: [
:title,
:slug,
:raw,
:rendered,
:is_published,
:published_at,
:is_tag,
:toc,
:settings,
:is_archived,
:is_private,
:show_on_timeline,
:language
]
]
action :duplicate, :struct do
argument :page_id, :uuid
transaction? true
run fn query, _context ->
id = query.arguments.page_id
{:ok, page} =
__MODULE__.get(id)
|> Ash.load([:media, :tags, :pages, :external_scripts])
new_page = %{
page
| id: nil,
is_published: false,
published_at: nil,
slug: nil,
is_private: false
}
{:ok, new_page} = new_page |> Map.from_struct() |> __MODULE__.create()
...
end
end
This action will fail in create because the input will have quite more fields than just listed attributes: it will have all the calculated fields, and all the aggregations etc.
This worked in Ash 2.x, but now fails in Ash 3.0 with %Ash.Error.Invalid.NoSuchInput for every calculation, aggregate etc. in the provided map.
Is their a fast way to convert this into a proper changeset with inputs. E.g. by filtering only on keys available to the action?
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello,
I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
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
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
Other Trending Topics
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
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
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
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #security










Showing Posts 1 to 2- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
dmitriid
I’ve solved it by
where
@create_attributescontains all the necessary fieldszachdaniel
You can also tell Ash what keys to ignore in cases that they are missing:
With that said, being more explicit as you are showing is always better