Class: Sequel::Model

Inherits:
Object show all
Extended by:
Enumerable, Inflections, ClassMethods
Defined in:
lib/sequel/model.rb,
lib/sequel/model/base.rb,
lib/sequel/model/errors.rb,
lib/sequel/model/associations.rb,
lib/sequel/model/dataset_module.rb

Overview

Sequel::Model is an object relational mapper built on top of Sequel core. Each model class is backed by a dataset instance, and many dataset methods can be called directly on the class. Model datasets return rows as model instances, which are wrappers around the underlying hash that allow easily updating or deleting the individual row.

Sequel::Model is built completely out of plugins. Plugins can override any class, instance, or dataset method defined by a previous plugin and call super to get the default behavior. By default, Sequel::Model loads two plugins, Sequel::Model (which is itself a plugin) for the base support, and Sequel::Model::Associations for the associations support.

You can set the SEQUEL_NO_ASSOCIATIONS constant or environment variable to make Sequel not load the associations plugin by default.

Defined Under Namespace

Modules: Associations, ClassMethods, DatasetMethods, InstanceMethods Classes: DatasetModule, Errors

Constant Summary collapse

OPTS =
Sequel::OPTS
HOOKS =

Empty instance methods to create that the user can override. Just like any other method defined by Sequel, if you override one of these, you should call super to get the default behavior (while empty by default, they are often overridden by plugins). See the “Model Hooks” guide for more detail on hooks.

[
  :after_create,
  :after_destroy,
  :after_save,
  :after_update,
  :after_validation,
  :before_create,
  :before_destroy,
  :before_save,
  :before_update,
  :before_validation
].freeze
RESTRICTED_SETTER_METHODS =

The setter methods (methods ending with =) that are never allowed to be called automatically via set/update/new/etc.

instance_methods.map(&:to_s).select{|l| l.end_with?('=')}.freeze

Instance Attribute Summary

Attributes included from ClassMethods

#cache_anonymous_models, #dataset_method_modules, #dataset_module_class, #default_set_fields_options, #fast_instance_delete_sql, #fast_pk_lookup_sql, #instance_dataset, #plugins, #primary_key, #raise_on_save_failure, #raise_on_typecast_failure, #require_modification, #require_valid_table, #simple_pk, #simple_table, #strict_param_setting, #typecast_empty_string_to_nil, #typecast_on_assignment, #use_transactions

Method Summary

Methods included from Inflections

clear, irregular, plural, singular, uncountable

Methods included from ClassMethods

Model, [], call, clear_setter_methods_cache, columns, create, dataset, dataset=, dataset_module, db, db=, db_schema, def_Model, def_column_alias, find, find_or_create, freeze, has_dataset?, implicit_table_name, include, load, no_primary_key, plugin, primary_key_hash, qualified_primary_key_hash, restrict_primary_key, restrict_primary_key?, set_dataset, set_primary_key, setter_methods, table_name, unrestrict_primary_key, with_pk, with_pk!