I'm currently working on a project using permanent_records. Unfortunately we have invalid records in the database. These cannot be soft-deleted because permanent_records does not pass validation options to dependent records (https://github.com/JackDanger/permanent_records/issues/61).
It is possible to use record.destroy(validate: false) to ignore validations on the current record. But any associated record does not receive the options.
I dig a bit through the code and I guess it will be quite difficult to pass those options. In most cases ActiveRecord is calling destroy. Do you already have a plan how to solve that?
However, while digging, I asked myself why the record is validated in the first place. I understand the reason for validation when reviving a record. But when soft-deleting a record, only the deleted_at attribute is set. Is it really necessary to validate that? Because the records are deleted, I don't necessarily mind that they are invalid.
Proposed changes
Fixed SQLite dependency and fixed an issue in the spec
Change not to validate when soft-deleting a record
Hi there!
I'm currently working on a project using
permanent_records
. Unfortunately we have invalid records in the database. These cannot be soft-deleted becausepermanent_records
does not pass validation options to dependent records (https://github.com/JackDanger/permanent_records/issues/61).It is possible to use
record.destroy(validate: false)
to ignore validations on the current record. But any associated record does not receive the options.I dig a bit through the code and I guess it will be quite difficult to pass those options. In most cases
ActiveRecord
is callingdestroy
. Do you already have a plan how to solve that?However, while digging, I asked myself why the record is validated in the first place. I understand the reason for validation when reviving a record. But when soft-deleting a record, only the
deleted_at
attribute is set. Is it really necessary to validate that? Because the records are deleted, I don't necessarily mind that they are invalid.Proposed changes
Thank you for having a look!