formex_ecto v0.2.3 Formex.Ecto.Controller View Source
Ecto helpers for controller.
Installation:
web/web.ex
def controller do
quote do
use Formex.Ecto.Controller
end
end
Usage
CRUD
def new(conn, _params) do
form = create_form(App.ArticleType, %Article{})
render(conn, "new.html", form: form)
end
def create(conn, %{"article" => article_params}) do
App.ArticleType
|> create_form(%Article{}, article_params)
|> insert_form_data
|> case do
{:ok, _article} ->
# ...
{:error, form} ->
# ...
end
end
def edit(conn, %{"id" => id}) do
article = Repo.get!(Article, id)
form = create_form(App.ArticleType, article)
render(conn, "edit.html", article: article, form: form)
end
def update(conn, %{"id" => id, "article" => article_params}) do
article = Repo.get!(Article, id)
App.ArticleType
|> create_form(article, article_params)
|> update_form_data
|> case do
{:ok, article} ->
# ...
{:error, form} ->
# ...
end
end
Link to this section Summary
Functions
Works same as Formex.Controller.handle_form/2
, but also invokes Ecto.Repo.insert/2
Works same as Formex.Controller.handle_form/2
, but also invokes Ecto.Repo.update/2
Link to this section Functions
Link to this function
insert_form_data(form)
View Source
insert_form_data(Formex.Form.t) :: {:ok, Ecto.Schema.t} | {:error, Formex.Form.t}
Works same as Formex.Controller.handle_form/2
, but also invokes Ecto.Repo.insert/2
Link to this function
update_form_data(form)
View Source
update_form_data(Formex.Form.t) :: {:ok, Ecto.Schema.t} | {:error, Formex.Form.t}
Works same as Formex.Controller.handle_form/2
, but also invokes Ecto.Repo.update/2