После мягкого удаления записи я не могу называть это действием show
на контроллере, так как он ищет запись, соответствующую записи ID WHERE deleted_at IS NULLL
, что верно, учитывая цель драгоценного камня, но я все равно чтобы иметь возможность получить к нему доступ в виде «readonly» в приложении, чтобы разрешить пользователю просматривать архив и, возможно, восстановить.Rails 5 Paranoia - Как я могу показать 'удаленную запись?
Как я могу обойти область удаления, чтобы снова получить доступ к объекту?
UPDATE 1
К @ slowjack2k-х совет, я могу получить доступ мягкие удаленные записи с помощью следующего запроса:
@area = Area.only_deleted.find(params[:id])
Новая проблема возникла после этого, из-за CanCanCan-хload_and_authorize_resource
: он пытается позвонить по телефону
@area = Area.find(params[:id])
игнорируяonly_deleted фильтра, что приводит к ошибке, поскольку выбранный идентификатор можно найти только где deleted_at не равно нулю (не удаляются), и отключение авторизации «исправления», поэтому она должна быть проблемой между CanCanCan и Paranoia.
Вот нить с точно таким же вопросом: https://github.com/rubysherpas/paranoia/issues/356
Вот новый выпуск нить на StackOverflow: Rails 5 compatibility between Paranoia and CanCanCan, compromised?
Я буду обновлять его снова с решением, если я найду один, спасибо.
UPDATE 2
Проблема была решена, и решение может быть найдено на новом выпуске нити я уже упоминал выше.
Вы можете использовать 'YourModel.readonly.find_with_deleted (Params [: ID])' или 'YourModel.readonly.with_deleted.find (Params [: ID])' – slowjack2k
эй @ slowjack2k, 'YourModel.with_deleted.find (params [: id])' решил мою проблему, спасибо :) Не могли бы вы повернуть свой комментарий в ответ, чтобы я мог выбрать его, как правильный ответ? –
Спасибо, я создал тент. – slowjack2k