ken-kost
Generate live form on submit no data
Trying out Ash and LiveView together ![]()
Using latest versions.
I generated a live view using mix ash_phoenix.gen.live and added <.input ... />, everything else is like documented/generated.
But when AshPhoenix.Form.submit(form, params: params) is run it fails, or rather it tries to insert an empty struct. Since I added allow_nil?: false on my attributes it fails. Even though params are correct it’s like they are not transfered to the changeset and an empty changeset is submitted. What could be the issue?
Marked As Solved
zachdaniel
create: :* accepts all public attributes. So if your attribute is not public you will need to explicitly list it. You can do that with create: [:*, :thing] (as of recent versions)
Also Liked
zachdaniel
You’ll need to ensure that the attribute is accepted by the action you are submitting. Try adding accept [:the_attribute] to the action
zachdaniel
Hmm…yeah, so AshPhoenix passes the skip_unknown_inputs option with all of the fields it submits, so that you don’t get errors on unknown inputs. The reason it does this is because often in a form there is “extra data” used to do UI related stuff, and we don’t want that to cause an error. I think adding some kind of warning or error would make sense, but there are some edge cases where you actually can’t do anything about the extra keys in the form, and you wouldn’t be able to clear that warning or error…
I’ll have to think about it
clearly a bad DX there, but its one of those things that is more complex than it seems to address (within forms, if you passed these inputs in outside of a form when calling an action, you’d have gotten a clear error message).
Popular in Questions
Other popular topics
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
- #javascript
- #code-sync
- #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
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








