Skip to content

Instantly share code, notes, and snippets.

@joshed-io
Created October 28, 2010 07:59
Show Gist options
  • Select an option

  • Save joshed-io/650877 to your computer and use it in GitHub Desktop.

Select an option

Save joshed-io/650877 to your computer and use it in GitHub Desktop.
class ModelVersionObserver < ActiveRecord::Observer
observe MyReferenceDataModel
[:create, :update, :destroy].each do |action|
define_method("after_#{action}") do |record|
increment_model_version_of_observed(record, action)
end
end
private
def increment_model_version_of_observed(record, action)
unless record.skip_observation_on.include?(action)
model_version = ModelVersion.find_by_model_name(model_name = record.class.name)
if model_version
model_version.increment_version!
else
ModelVersion.create!(:model_name => model_name)
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment