BaseModel v0.3.0 BaseModel behaviour
BaseModel provides a simple set of CRUD functions to an Ecto Model via a
__using__ macro. For Example:
defmodule Db.Models.Person do
use BaseModel, repo: Db.Repo
schema "persons" do
field :name, :string
field :age, :integer
end
end
The use BaseModel line adds the following methods to the Person Model:
Person.create(params)Person.all(opts \\ [order_by: :none, preload: []])Person.find(id, opts \\ [preload: []])Person.first(where, opts \\ [preload: []])Person.first(where_clause, opts \\ [order_by: :none, preload []])Person.first_or_create(where_clause, opts \\ [order_by: :none, preload []])Person.where(where_clause, opts \\ [order_by: :none, limit: :none, preload: []])Person.count(where_clause \\ [])Person.delete(id_or_struct)Person.delete_all()Person.delete_where(where_clause)Person.update(model, params)Person.update_where(where_clause, params)
This model can now be interacted with in a more fluent manner than raw ecto:
iex> {:ok, model} = Person.create(name: "chris", age: 99)
{:ok, %Person{name: "chris", age: 99}}
iex> Person.update(model, age: 18)
{:ok, %Person{name: "chris", age: 18}}
iex> Person.where(age: 18)
[%Person{name: "chris", age: 18}]
Link to this section Summary
Link to this section Types
Link to this section Functions
Link to this section Callbacks
Link to this callback
update_changeset(model, params)
update_changeset(model(), params()) :: Ecto.Changeset.t()