AshObjectIds
An extension for Ash for working with object IDs.
defmodule App.Blog.Post do
use Ash.Resource,
domain: App.Blog,
data_layer: Ash.DataLayer.AshPostgres,
extensions: [AshObjectIds]
object_id do
prefix "p"
end
# .. data layer stuff
actions do
defaults([:read, :destroy, create: [:title], update: [:title]])
end
attributes do
uuid_primary_key(:id)
attribute(:title, :string, public?: true)
# ... other attributes
end
end
# Example:
%Post{id: "p_CWzLBdFy2f1XhrtesFferY"} =
Post
|> Ash.Changeset.for_create(:create, %{title: "Hello world"})
|> Ash.create!()
For more detailed information, read the AshObjectIds moduledoc.