class Marten::DB::Query::ManyToManySet(M)

Overview

Represents a query set resulting from a many-to-many relation.

Direct Known Subclasses

Defined in:

marten/db/query/many_to_many_set.cr

Constructors

Instance Method Summary

Instance methods inherited from class Marten::DB::Query::Set(M)

&(other : self) &, [](index : Int)
[](range : Range)
[]
, []?(index : Int)
[]?(range : Range)
[]?
, |(other : self) |, all all, any? any?, average(field : String | Symbol) average, build(**kwargs)
build(**kwargs, &)
build
, bulk_create(objects : Array(M), batch_size : Int32 | Nil = nil) bulk_create, count(field : String | Symbol | Nil = nil) count, create(**kwargs)
create(**kwargs, &)
create
, create!(**kwargs)
create!(**kwargs, &)
create!
, delete(raw : Bool = false) : Int64 delete, distinct
distinct(*fields : String | Symbol)
distinct
, each(&) each, exclude(query_node : Node)
exclude(**kwargs)
exclude(&)
exclude
, exists?(query_node : Node)
exists?
exists?(**kwargs)
exists?(&)
exists?
, filter(raw_predicate : String, params : Array)
filter(raw_predicate : String, params : Hash | NamedTuple)
filter(raw_predicate : String)
filter(query_node : Node)
filter(raw_predicate : String, *args)
filter(raw_predicate : String, **kwargs)
filter(**kwargs)
filter(&)
filter
, first first, first! first!, get(query_node : Node)
get(**kwargs)
get(&)
get
, get!(query_node : Node)
get!(**kwargs)
get!(&)
get!
, get_or_create(**kwargs)
get_or_create(**kwargs, &)
get_or_create
, get_or_create!(**kwargs)
get_or_create!(**kwargs, &)
get_or_create!
, includes?(value : M) includes?, inspect(io) inspect, join(*relations : String | Symbol) join, last last, last! last!, maximum(field : String | Symbol) maximum, minimum(field : String | Symbol) minimum, model model, none none, order(fields : Array(String | Symbol))
order(*fields : String | Symbol)
order
, paginator(page_size : Int) paginator, pick(fields : Array(String | Symbol)) : Array(Field::Any) | Nil
pick(*fields : String | Symbol) : Array(Field::Any) | Nil
pick
, pick!(fields : Array(String | Symbol)) : Array(Field::Any)
pick!(*fields : String | Symbol) : Array(Field::Any)
pick!
, pks pks, pluck(fields : Array(String | Symbol)) : Array(Array(Field::Any))
pluck(*fields : String | Symbol) : Array(Array(Field::Any))
pluck
, prefetch(*relations : String | Symbol) prefetch, raw(query : String, params : Array)
raw(query : String, params : Hash | NamedTuple)
raw(query : String, *args)
raw(query : String, **kwargs)
raw
, resolve_template_attribute(key : String) resolve_template_attribute, reverse reverse, size size, sum(field : String | Symbol) sum, to_s(io) to_s, to_sql : String to_sql, update(values : Hash | NamedTuple)
update(**kwargs)
update
, using(db : Nil | String | Symbol) using

Constructor methods inherited from class Marten::DB::Query::Set(M)

new(query : Marten::DB::Query::SQL::Query(M) = SQL::Query(M).new, prefetched_relations : Array(String) = [] of String) new

Macros inherited from module Marten::Template::Object

template_attributes(*names) template_attributes

Constructor Detail

def self.new(instance : Marten::DB::Model, field_id : String, through_related_name : String, through_model_from_field_id : String, through_model_to_field_id : String, query : SQL::Query(M) | Nil = nil) #

[View source]

Instance Method Detail

def add(objs : Enumerable(M) | Iterable(M)) #

Adds the given objects to the many-to-many relationship.

If the objects specified in objs are already in the relationship, they will be skipped and not added again.


[View source]
def add(*objs : M) #

Adds the given objects to the many-to-many relationship.

If the objects specified in objs are already in the relationship, they will be skipped and not added again.


[View source]
def clear : Nil #

Clears the many-to-many relationship.


[View source]
def remove(objs : Enumerable(M) | Iterable(M)) : Nil #

Removes the given objects from the many-to-many relationship.


[View source]
def remove(*objs : M) : Nil #

Removes the given objects from the many-to-many relationship.


[View source]