软删除记录后,我无法show
在控制器上的操作上调用它,因为它会查找与记录匹配的记录ID WHERE deleted_at IS NULLL
,考虑到 gem 的用途,这是正确的,但我仍然希望能够在应用程序中以某种“只读”状态访问它,以允许用户查看存档并可能恢复它。
如何解决删除范围以便我可以再次访问该对象?
更新 1
根据@slowjack2k 的建议,我可以使用以下查询访问软删除的记录:
@area = Area.only_deleted.find(params[:id])
由于CanCanCan 的 load_and_authorize_resource
原因,之后出现了一个新问题:它试图调用
@area = Area.find(params[:id])
忽略only_deleted过滤器,导致错误,因为仅在 deleted_at 不为空(未删除)的情况下找到所选 id,并且禁用授权“修复”它,因此它必须是CanCanCan和Paranoia之间的问题。
这是一个具有完全相同问题的线程:https ://github.com/rubysherpas/paranoia/issues/356
这是 StackOverflow 上的新问题:Rails 5 compatibility between Paranoia 和 CanCanCan,妥协了吗?
如果我找到解决方案,我会再次更新它,谢谢。
更新 2
问题已解决,可以在我上面提到的新问题线程中找到解决方案。