Sha256: a531f95358db4ced1bfd6e1f12d29b5f6bd927fce4414b83a19d7b84ad2e9a09
Contents?: true
Size: 1.62 KB
Versions: 6
Compression:
Stored size: 1.62 KB
Contents
= dm-constraints Plugin that adds foreign key constraints to associations. Currently supports only PostgreSQL and MySQL All constraints are added to the underlying database, but constraining is implemented in pure ruby. === Constraints - :protect returns false on destroy if there are child records - :destroy deletes children if present - :destroy! deletes children directly without instantiating the resource, bypassing any hooks Does not support 1:1 Relationships as #destroy! is not supported on Resource in dm-master - :set_nil sets parent id to nil in child associations Not valid for M:M relationships as duplicate records could be created (see explanation in specs) - :skip Does nothing with children, results in orphaned records By default a relationship will PROTECT its children. === Cardinality Notes * 1:1 * Applicable constraints: [:set_nil, :skip, :protect, :destroy] * 1:M * Applicable constraints: [:set_nil, :skip, :protect, :destroy, :destroy!] * M:M * Applicable constraints: [:skip, :protect, :destroy, :destroy!] === Examples # 1:M Example class Post has n, :comments # equivalent to: # has n, :comments, :constraint => :protect end # M:M Example class Article has n, :tags, :through => Resource, :constraint => :destroy end class Tags has n, :articles, :through => Resource, :constraint => :destroy end # Intermediary constraints for relationships using :through => Resource # are automatically inherited from the M:M relationship. # 1:1 Example class User has 1, :address, :constraint => :protect end
Version data entries
6 entries across 6 versions & 2 rubygems