В Rails, когда запись должна быть удалена, я хочу сохранить отдельную таблицу для таких удаленных записей (которая по структуре будет аналогична первой).
Один из способов добиться этого - явно скопировать структуру, проверки и ассоциации из первой модели и вставить ее в модель удаленных элементов.Это, однако, приведет к большой избыточности кода и не будет масштабируемым решением.
Есть ли способ достичь этого в Rails без значительной (или любой) избыточности кода или решения, которое можетбыть более масштабируемым, чем упомянутый выше?
Я использую Ruby 1.9.3-p125 и Rails 3.2.
ОБНОВЛЕНИЕ
Я решил использовать дополнительный столбец is_deleted
в таблице, однако я решил не делать этого, потому что не хотел, чтобы эта таблица становилась слишком большой и грязной из-за удаленных сообщений.Я не собираюсь по-настоящему получить доступ к этим удаленным сообщениям - они просто хранятся для ведения записей или архивирования.Добавление этого столбца также сделает доступ к этой таблице более медленным и, что более важно, я боюсь, что где-то пропущу проверку is_deleted == false
в каком-то условии SQL - даже если я включу эту проверку в default_scope
модели.