Module: Sequel::Plugins::AssociationPks

Defined in:
lib/sequel/plugins/association_pks.rb

Overview

The association_pks plugin adds the association_pks and association_pks= instance methods to the model class for each association added. These methods allow for easily returning the primary keys of the associated objects, and easily modifying the associated objects to set the primary keys to just the ones given:

Artist.one_to_many :albums
artist = Artist[1]
artist.album_pks # [1, 2, 3]
artist.album_pks = [2, 4]
artist.album_pks # [2, 4]

Note that it uses the singular form of the association name. Also note that the setter both associates to new primary keys not in the assocation and disassociates from primary keys not provided to the method.

This plugin makes modifications directly to the underlying tables, it does not create or return any model objects, and therefore does not call any callbacks. If you have any association callbacks, you probably should not use the setter methods.

This plugin only works with singular primary keys, it does not work with composite primary keys.

Usage:

# Make all model subclass *_to_many associations have association_pks
# methods (called before loading subclasses)
Sequel::Model.plugin :association_pks

# Make the Album *_to_many associations have association_pks
# methods (called before the association methods)
Album.plugin :association_pks

Defined Under Namespace

Modules: ClassMethods, InstanceMethods