JackDanger / permanent_records

Rails Plugin - soft-delete your ActiveRecord records. It's like an explicit version of ActsAsParanoid
https://jdanger.com
MIT License
272 stars 64 forks source link

Disable validations on destroy #110

Open phylor opened 2 years ago

phylor commented 2 years ago

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 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

Thank you for having a look!

samuelsteiner commented 2 years ago

@JackDanger may I ping you on this one? I'd actually be glad about it, too