Module: Logidze::Detachable::ClassMethods
- Defined in:
- lib/logidze/detachable.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#create_logidze_snapshot(timestamp: nil, only: nil, except: nil, sql_filter: nil) ⇒ Object
Initialize log_data with the current state if it’s null.
-
#reset_log_data ⇒ Integer
Nullify log_data column for a association.
Instance Method Details
#create_logidze_snapshot(timestamp: nil, only: nil, except: nil, sql_filter: nil) ⇒ Object
Initialize log_data with the current state if it’s null
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/logidze/detachable.rb', line 22 def create_logidze_snapshot(timestamp: nil, only: nil, except: nil, sql_filter: nil) ActiveRecord::Base.connection.execute " INSERT INTO \#{Logidze::LogidzeData.quoted_table_name} (log_data, loggable_type, loggable_id)\n SELECT logidze_snapshot(\n to_jsonb(\#{quoted_table_name}),\n \#{snapshot_query_args(timestamp: timestamp, only: only, except: except)}\n ),\n '\#{name}',\n \#{quoted_table_name}.id\n FROM \#{quoted_table_name}\n \#{sql_filter}\n ON CONFLICT (loggable_type, loggable_id)\n DO UPDATE\n SET log_data = EXCLUDED.log_data;\n SQL\nend\n".squish |
#reset_log_data ⇒ Integer
Nullify log_data column for a association
17 18 19 |
# File 'lib/logidze/detachable.rb', line 17 def reset_log_data Logidze::LogidzeData.where(loggable_id: ids, loggable_type: name).delete_all end |