Class: LcpRuby::CustomFields::DefinitionChangeHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/custom_fields/definition_change_handler.rb

Class Method Summary collapse

Class Method Details

.install!(model_class) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/lcp_ruby/custom_fields/definition_change_handler.rb', line 4

def self.install!(model_class)
  model_class.after_commit do |record|
    target_model_name = record.target_model
    next if target_model_name.blank?

    Registry.reload!(target_model_name)

    begin
      target = LcpRuby.registry.model_for(target_model_name)
      target.apply_custom_field_accessors!
    rescue LcpRuby::Error => e
      Rails.logger.warn("[LcpRuby::CustomFields] Cache reload failed for '#{target_model_name}': #{e.message}") if defined?(Rails) && Rails.respond_to?(:logger)
    end
  end
end