Packages
phoenix_ecto
0.1.0
4.7.0
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.1
4.6.0
4.5.1
4.5.0
4.4.3
4.4.2
4.4.1
4.4.0
4.3.0
4.2.1
4.2.0
4.1.0
4.0.0
3.6.0
3.5.0
retired
3.4.0
3.3.0
3.2.3
3.2.2
3.2.1
3.2.0
3.1.0
3.1.0-rc.0
3.0.1
3.0.0
3.0.0-rc.0
3.0.0-beta.2
3.0.0-beta.1
3.0.0-beta.0
2.0.3
2.0.2
2.0.1
2.0.0
1.2.0
1.1.0
1.0.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
Integration between Phoenix & Ecto
Current section
Files
Jump to
Current section
Files
lib/phoenix_ecto.ex
if Code.ensure_loaded?(Phoenix.HTML) do
defimpl Phoenix.HTML.FormData, for: Ecto.Changeset do
def to_form(%Ecto.Changeset{model: model, params: params} = changeset, opts) do
{name, opts} = Keyword.pop(opts, :name)
%Phoenix.HTML.Form{
source: changeset,
name: to_string(name || form_for_name(model)),
model: model,
hidden: form_for_hidden(model),
params: params || %{},
options: Keyword.put_new(opts, :method, form_for_method(model))
}
end
defp form_for_name(%{__struct__: module}),
do: Phoenix.Naming.resource_name(module)
defp form_for_method(%{__state__: :loaded}), do: "put"
defp form_for_method(_), do: "post"
defp form_for_hidden(%{__state__: :loaded} = model) do
if pk = Ecto.Model.primary_key(model) do
[{model.__struct__.__schema__(:primary_key), pk}]
else
[]
end
end
defp form_for_hidden(_), do: []
end
defimpl Phoenix.HTML.Safe, for: Decimal do
def to_iodata(dec) do
Decimal.to_string(dec)
end
end
end