SQL » Relations
To define an SQL relation you can use the standard way of defining relations in ROM:
class Users < ROM::Relation[:sql]
schema(infer: true)
end
Setting dataset (table) name explicitly
By default relation's dataset
name is inferred from the class name. You can
override this easily:
module Relations
class Users < ROM::Relation[:sql]
schema(:users, infer: true)
end
end
Aliasing a relation
If your dataset name is not something that you'd like to use in your application, you can easily alias relation so that it'll be accessible via your custom name:
module Relations
class Users < ROM::Relation[:sql]
schema(:AdminUsers, infer: true, as: :users)
end
end
Adjusting default dataset
Every relation is initialized with a default dataset which is set up based on schema. This means that all columns are explicitly selected and relations are ordered by primary key. If you want to change this, define your custom default dataset using a block:
module Relations
class Users < ROM::Relation[:sql]
schema(:users, infer: true)
dataset do
select(:id, :name).order(:name)
end
end
end