Clear ORM
Comment on page

Primary Keys

Clear needs your model to define a primary key column. By default, Clear can handle properly int, bigint, string and uuid primary keys.
As time of writing this manual, compound primary keys are not handled properly.

primary_key helper

Clear offers a built-in primary_key helper which will define your primary key without hassle:
class Product
include Clear::Model
self.table = "products"
primary_key name: "product_id", type: :uuid
  • name is the name of your column in your table. (Default: id)
  • type is the type of the column in your table. Set to (Default: bigserial).
  • By default, types can be of type bigserial, serial, int, bigint, text and uuid.
Note than primary_key directive in the model class is just a fast way of writing:
column id : Int64, primary: true, presence: false
The primary key name is ID, of type bigint and it won't check the presence on save because it has default value
In case of uuid, Clear will generate a new uuid at every new object creation before inserting it into the database.