Module: Elasticsearch::Model::Callbacks

Defined in:
lib/elasticsearch/model/callbacks.rb

Overview

Note:

A blocking HTTP request is done during the update process. If you need a more performant/resilient way of updating the index, consider adapting the callbacks behaviour, and use a background processing solution such as [Sidekiq](sidekiq.org) or [Resque](github.com/resque/resque).

Allows to automatically update index based on model changes, by hooking into the model lifecycle.

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object

When included in a model, automatically injects the callback subscribers (`after_save`, etc)

Examples:

Automatically update Elasticsearch index when the model changes


class Article
  include Elasticsearch::Model
  include Elasticsearch::Model::Callbacks
end

Article.first.update_attribute :title, 'Updated'
#  SQL (0.3ms)  UPDATE "articles" SET "title" = ...
#  2013-11-20 15:08:52 +0100: POST http://localhost:9200/articles/article/1/_update ...

45
46
47
48
# File 'lib/elasticsearch/model/callbacks.rb', line 45

def self.included(base)
  adapter = Adapter.from_class(base)
  base.__send__ :include, adapter.callbacks_mixin
end