Class: LcpRuby::Services::Accessors::JsonField
- Inherits:
-
Object
- Object
- LcpRuby::Services::Accessors::JsonField
- Defined in:
- lib/lcp_ruby/services/accessors/json_field.rb
Class Method Summary collapse
Class Method Details
.get(record, options:) ⇒ Object
5 6 7 8 9 |
# File 'lib/lcp_ruby/services/accessors/json_field.rb', line 5 def self.get(record, options:) column = ["column"] key = ["key"] record.send(column)&.dig(key) end |
.set(record, value, options:) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/lcp_ruby/services/accessors/json_field.rb', line 11 def self.set(record, value, options:) column = ["column"] key = ["key"] data = record.send(column) || {} # Mark column dirty before assignment to ensure JSON changes are persisted # even when AR's equality check considers the old and new hashes equivalent. record.send("#{column}_will_change!") unless record.send("#{column}_changed?") record.send("#{column}=", data.merge(key => value)) end |