mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
Patches Paranoia gem to fix a conflict with transactions in Rspec: https://github.com/rubysherpas/paranoia/issues/274 Example error: ``` Failure/Error: order.line_items.first.variant.tap(&:delete) NoMethodError: undefined method `state' for #<ActiveRecord::ConnectionAdapters::NullTransaction:0x0000564117dddd18> ```
16 lines
517 B
Ruby
16 lines
517 B
Ruby
module Paranoia
|
|
def paranoia_delete
|
|
raise ActiveRecord::ReadOnlyRecord, "#{self.class} is marked as readonly" if readonly?
|
|
if persisted?
|
|
# if a transaction exists, add the record so that after_commit
|
|
# callbacks can be run
|
|
add_to_transaction unless self.class.connection.current_transaction.closed?
|
|
update_columns(paranoia_destroy_attributes)
|
|
elsif !frozen?
|
|
assign_attributes(paranoia_destroy_attributes)
|
|
end
|
|
self
|
|
end
|
|
alias_method :delete, :paranoia_delete
|
|
end
|