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 or 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