Skip to content

zovafit/ecto-ordered

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EctoOrdered

Ecto extension to support ordered list items. Similar to acts_as_list, but for Ecto

Examples

# Global positioning
defmodule MyModel do
  use Ecto.Schema
  import EctoOrdered

  schema "models" do
    field :position, :integer, virtual: true
    field, :rank, :integer
  end
  
  def changeset(model, params) do
    model
    |> cast(params, [], [:position])
    |> set_order(:position)
  end
end

# Scoped positioning
defmodule MyModel do
  use Ecto.Model
  use EctoOrdered, scope: :reference_id

  schema "models" do
    field :reference_id, :integer
    field :position,     :integer, virtual: true
  end
  
  def changeset(model, params) do
    model
    |> cast(params, [], [:position, :reference_id])
    |> set_order(:position, :reference_id)
  end
end

About

Ecto extension for ordered models

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages