Module: Sequel::Plugins::UpdateRefresh
- Defined in:
- lib/sequel/plugins/update_refresh.rb
Overview
The update_refresh plugin makes the model class refresh the object after updating. By default, Sequel only refreshes automatically after inserting new rows, not after updating. However, if you are using triggers to modify the contents of updated rows, it can be helpful to immediately get the current data after updating.
If the dataset supports UPDATE RETURNING, this plugin will use it so that it can retrieve the current data in the same query it uses for the update.
Usage:
# Make all model subclasses refresh after update
Sequel::Model.plugin :update_refresh
# Make the Album class refresh after update
Album.plugin :update_refresh
As a performance optimisation, if you know only specific columns will have changed, you can specify them to the columns
option. This can be a performance gain if it would avoid pointlessly comparing many other columns. Note that this option currently only has an effect if the dataset supports RETURNING.
# Only include the artist column in RETURNING
Album.plugin :update_refresh, columns: :artist
# Only include the artist and title columns in RETURNING
Album.plugin :update_refresh, columns: [:artist, :title]
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Class Method Summary collapse
-
.configure(model, opts = OPTS) ⇒ Object
Set the specific columns to refresh, if the :columns option is provided.
Class Method Details
.configure(model, opts = OPTS) ⇒ Object
Set the specific columns to refresh, if the :columns option is provided.
40 41 42 43 44 |
# File 'lib/sequel/plugins/update_refresh.rb', line 40 def self.configure(model, opts=OPTS) model.instance_exec do @update_refresh_columns = Array(opts[:columns]) || [] end end |