class

DBX::ORM::ModelQuery(Model)

Inherits DBX::Query / Reference / Object

Generic ModelQuery class.

Automatically injected into the models.

If you want to customize the queries of a model, you can define you own ModelQuery into this model.

class User < DBX::ORM::Model
  # ...

  class ModelQuery < DBX::ORM::ModelQuery(User)
    # A custom `select`
    def select_custom
      self.select({:id, :name, :about, :age})
    end
  end
end

In the model example above, we have added a new method (select_custom) to `ModelQuery', which can be used in each query.

user = User.find(id).select_custom.to_o
users = User.find.select_custom.to_a

Constructors

Instance methods

create!(data, returning : DBX::QueryBuilder::OneOrMoreFieldsType = "*")

Creates a new record and returns.

test = Test.create!(data)
puts test.id
Source
query_all

Executes current query using current Model::Schema.

Source
query_one

Executes current query using current Model::Schema.

Source
query_one!

Executes current query using current Model::Schema.

Source
rel(path : Symbol | String, table_alias : String | Symbol | Nil = nil) : ModelQuery(Model)

Refers to the result of a join in a defined relation property path.

users = User
  .find
  .rel("groups")
  .left_join("groups", "groups.id", "users.group_id")
  .to_a
Source
select_all(model_class : DBX::ORM::Model.class, table_alias : String | Symbol | Nil = nil) : ModelQuery(Model)

Selects the relation fields. This method is automatically called by the methods related to the joins with a model class.

Source
select_all

Selects all SQL fields.

Source
selected_all?(model_class : DBX::ORM::Model.class, table_alias : String | Symbol | Nil = nil) : Bool

Returns true if the relation fields are selected, false otherwise. See select_rel_fields

Source
selected_all?

Returns true if the model fields are selected, false otherwise. See select_all

Source
to_a(as types)

Shortcut, same as query_all(types).

Source
to_a

Shortcut, same as query_all.

Source
to_o(as types)

Shortcut, same as query_one(types).

Source
to_o

Shortcut, same as query_one.

Source
to_o!(as types)

Shortcut, same as query_one!(types).

Source
to_o!

Shortcut, same as query_one!.

Source