donwhit
I have a nested map and I want to enter a password_hash value in a field.
map = %{
“city” => “Meadville”,
“credential” => %{
“email” => “don@mail”,
“password” => “qwerty”,
“password_hash” => “”
},
“firstname” => “Don”,
“lastname” => “Whitbeck”,
“phoneone” => “xxx-xxx-xxxx”,
“phonetwo” => “”,
“spousename” => “xxx”,
“state” => “xx”,
“streetaddress” => “xxxx”,
“username” => “donwhit”,
“zipcode” => “xxxxxx”
}
In iex everything works
iex> password = get_in(map, [“credential”, “password”])
iex > hash = Pbkdf2.hash_pwd_salt(password)
“$pbkdf2-sha512$160000$POD__etcetera”
Here is the puzzle.
when I compile this code and try to run this, I get errors.
In the browser I have
ArgumentError at GET /parents/new
errors were found at the given arguments:
:erlang.iolist_to_binary/1
1.nil
The offending code line is - hash = Pbkdf2.hash_pwd_salt(password)
in the following function (partly shown here)
def changeset(parent, attrs) do # Create a parent
password = get_in(attrs, [“credential”, “password”])
hash = Pbkdf2.hash_pwd_salt(password) # offending line of code
I have tried a dozen ways to analyze this error with no results.
Trending in Questions
Other Trending Topics
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 5 to 1- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
donwhit
many thanks
al2o3cr
A typical “new” action initializes a changeset with attributes of
%{}; that would cause exactly this error message.kokolegorille
Hello,
You can wrap your code with ``` to make it more readable.
I have edited your last post, to show You the difference
donwhit
Thank you for your quick response, I input the data into a template using form_for.
in my function. I inspected the data in this function
def changeset(parent, attrs) do # Create a parent
hauleth
It seems that you send wrong data to the endpoint. There is no such field that you want and
get_in/2returnsnilatom, which is not correct IO list.