Обратный вызов MongoMapper по умолчанию - PullRequest
0 голосов
/ 15 марта 2012

Я бы хотел определить обратный вызов before_save по умолчанию для любой модели, которая является моделью MongoMapper.Например, с ActiveRecord я мог бы просто сделать это в инициализаторе:

module ActiveRecord
  class Base
    before_save :strip_attrs

    private

    def strip_attrs
      # do stuff
    end
  end
end

Возможно ли сделать что-то подобное с MongoMapper?

1 Ответ

1 голос
/ 15 марта 2012

Попробуйте создать плагин ActiveSupport::Concern, а затем подключите его к MongoMapper :: Document, так же как MongoMapper делает для своих внутренних плагинов.

module StripOnSave
  extend ActiveSupport::Concern

  included do
    before_save :strip_attrs
  end

  def strip_attrs
    # ...
  end
end

module MongoMapper
  module Document
    include StripOnSave
  end

  module EmbeddedDocument
    include StripOnSave
  end
end
...