VincentBlackdot
** (ArgumentError) assign @templates not available in eex template
i have two schemas of which templates belong to users. but when creating a template i receive
iex> [error] pid<0.15384.0> running SmartcomClientWeb.Endpoint (connection pid<0.15383.0>, stream id 1) terminated
Server: localhost:4000 (http)
Request: POST /create/template
** (exit) an exception was raised:
** (ArgumentError) assign @templates not available in eex template.
Please make sure all proper assigns have been set. If this
is a child template, ensure assigns are given explicitly by
the parent template as they are not automatically forwarded.
Available assigns: [:changeset, :conn, :view_module, :view_template]
FOLLOWED by
iex(232)> [debug] Processing with SmartcomClientWeb.UserController.create/2
Parameters: %{}
Pipelines:
iex(232)> [info] Sent 500 in 47ms
iex(232)> [error] pid<0.15386.0> running SmartcomClientWeb.Endpoint (connection pid<0.15383.0>, stream id 2) terminated
Server: localhost:4000 (http)
Request: POST /system/users
** (exit) an exception was raised:
** (ArgumentError) assign @users not available in eex template.
Please make sure all proper assigns have been set. If this
is a child template, ensure assigns are given explicitly by
the parent template as they are not automatically forwarded.
Available assigns: [:changeset, :conn, :view_module, :view_template]
Here are my create function for templates
case Templates.create_template(params) do
{:ok, template} ->
conn
|> put_flash(:info, "Template created successfully.")
|> redirect(to: Routes.template_path(conn, :show, template))
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "index.html", changeset: changeset )
end
end
here are my create function for users
IO.inspect(params, label: "PARAMS>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
case Accounts.create_user(params) do
{:ok, user} ->
conn
|> put_flash(:info, "User created successfully.")
|> redirect(to: Routes.user_path(conn, :show, user))
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "index.html", changeset: changeset)
end
end
do note i am using ajax to post data to mssql db
$.ajax({
type: 'POST',
url: '/create/template',
data: $("form.user-form").serialize(),
success: function(response) {
console.log(response)
},
error: function (error) {
console.log(error)
}
})
})
Marked As Solved
kokolegorille
You are using normal controllers but it should be api controllers, returning json instead…
and when there is an error, it redirects to index, which needs @users, but You don’t define them.
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
- #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
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








