module Clear::Model::HasSerialPkey

Direct including types

Defined in:


Constant Summary

PKEY_TYPE = {"bigserial" => "column(__name__ : Int64, primary: true, presence: false)", "serial" => "column(__name__ : Int32, primary: true, presence: false)", "text" => "column(__name__ : String, primary: true, presence: true)", "int" => "column(__name__ : Int32, primary: true, presence: true)", "bigint" => "column(__name__ : Int64, primary: true, presence: true)", "uuid" => "column(__name__ : UUID, primary: true, presence: true)\nbefore(:validate) do |m|\n if (!m.persisted?) && (\n (\n end\nend\n"} of Nil => Nil

Macro Summary

Macro Detail

macro add_pkey_type(type, &block) #

Add a hook for the primary_key In the hook, name will be replaced by the column name required by calling primary_key


Clear::Model::HasSerialPkey.add_pkey_type("awesomepkey") do
  column __name__ : AwesomePkey, primary: true, presence: false

  before_validate do
    # ...

Your new primary key system can then be called using primary_key method:

primary_key :id, :awesomepkey

[View source]
macro primary_key(name = "id", type = :bigserial) #

Macro used to define serializable primary keys. Currently support bigserial, serial and uuid.

For bigserial and serial, let to PostgreSQL the handling of sequence numbers. For uuid, will generate a new UUID number on creation.

[View source]