问题标签 [ruby-paranoia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
170 浏览

ruby-on-rails - 设置自定义字段值不适用于偏执狂

我一直在尝试用我的项目设置偏执狂。我有一个deleted_at列和另一个列状态,当它被删除时等于 2。

模型类

但是当我执行销毁或恢复时,它似乎并没有改变状态值。

0 投票
1 回答
2942 浏览

ruby-on-rails - Rails 关联 with_deleted 范围不适用于订单

这是我到目前为止得到的:

该查询就像一个魅力,我让我的所有成员都与他们的位置相关联到我的所有网站。

但是当我尝试订购它们时,我得到了

当我尝试访问它们时,被删除的成员现在为零。

我发现当我添加订单时,生成查询添加

即使使用 where 子句包含 x.deleted_at IS NULL OR x.deleted_at IS NOT NULL 因为它们在连接中被拒绝,它们也不包括在内。

我正在使用 rails 4.2.3 和 paranoia 4.2.3 我尝试检查一些配置,过了一会儿发现当我使用 rails 4.2.1 时它工作正常。如果可能的话,我想保留 rails 4.2.3。

我应该怎么做才能解决我的问题?如果有人有想法,我准备尝试一下。预先感谢。


我尝试添加一个 joins(:position)、joins(:member) 和两者,但结果是一样的

我试图改变

为了

但它什么也没改变

0 投票
1 回答
228 浏览

ruby-on-rails - Rails act_as_paranoid 迁移在确认设计时出错

我首先添加了 Devise gem,没有可确认的选项。然后我后来在此迁移中添加了可确认选项:

当我运行迁移时,它给出了一个错误

0 投票
1 回答
254 浏览

ruby-on-rails - 更新 carrerwave S3 中的文件路径

我有一个 Document 模型,其中包含一个文件,该文件使用 Carrierwave(fog) 和我的上传器 ( mount_uploader :file, DocumentUploader) 上传到 S3。我还使用“偏执狂”宝石acts_as_paranoid来软删除文档。销毁后,我希望将附件移动到同一目录中的“存档”文件夹中。然后我计划在恢复已删除的文档时将其移回原始(父)目录。

我的模型中有以下内容:

在方法move_file_to_archive中,我使用雾建立与亚马逊的连接,并执行以下操作以将文件移动到存档:

问题是我找不到一种方法让我的文档对象指向新的(存档的)文件而不是旧的。不知何故,当对象被销毁时,我希望 self.file.path 更改为存档路径而不是原始路径。然后在恢复文档时将其还原。任何帮助,将不胜感激!

0 投票
2 回答
727 浏览

ruby-on-rails - Rails_admin 和偏执狂

当我删除某些东西时,有没有办法管理偏执狂产生的“软删除”记录?我的意思是,我在rails_admin或 rails 控制台中删除的任何记录实际上并没有被删除,而是偏执狂用deleted_at时间戳标记它们,这使它们超出了视图范围。

我希望能够看到这些已删除的记录,以便进行审计、潜在恢复或真正永久删除它们。

我有一个基本的 rails_admin 和 paranoia 安装,没什么特别的。

此外,这个先前提出的问题也无济于事。

0 投票
3 回答
188 浏览

ruby-on-rails - 需要返回对象的 :name,即使它被软删除(使用偏执狂)

Users在系统中可以使用 soft_deleted 来paranoia (2.0.2)跟踪TimeRecords有多少人:hoursuser给定的任务中工作,以及他们:cost在整个任务中的总数是多少(:cost = :rate * :hours为了简单起见)。

这些记录会持续存在,因此即使user将来更改 a 的费率,您仍然可以准确了解他们过去为给定任务收取的费用。输入软删除。Auser可以使用软删除(设置deleted_at: Time.now)从系统中删除,但我需要他们的名字仍然显示链接到:hours他们:cost过去收费。我有一个可行的解决方案,但对我来说感觉太老套了,而且我找不到更优雅的解决方案。我很感激任何建议/帮助人们可能必须以正确的方式而不是简单的方式来做到这一点。

当前解决方案:

0 投票
0 回答
518 浏览

ruby-on-rails - 偏执狂的“with_deleted”命令不适用于 Rails 任务

我有以下任务要在 Rais 上运行:

问题发生在队列中

发生的事情是它在抛出

ActiveRecord::RecordNotFound: 找不到 'id'=71 的用户组 [WHERE "user_groups"."deleted_at" IS NULL]

就像命令行上没有“删除”一样。

我尝试在 Rails 控制台上键入相同的命令并且它工作,即当我运行 ug = UserGroup.with_deleted.find(71) 时它工作得很好并找到已删除的用户。

所以似乎偏执狂的'with_deleted'命令不适用于rails任务......我错过了什么吗?

0 投票
5 回答
2493 浏览

ruby-on-rails - 偏执狂宝石 - 加入已删除的项目

我正在使用Paranoia gem,现在正在努力解决这个问题。我需要加入 has_many已删除的项目,但它只返回不删除。我的模型:

我正在运行的查询应该返回mailings已删除的项目:

0 投票
4 回答
1966 浏览

ruby-on-rails - 独特的约束问题偏执宝石

我有一个 Rails 应用程序,我在其中使用设计和偏执狂宝石。
我在 postgres db 中有一个用户表,它在电子邮件列上有唯一的验证。我正在使用偏执狂进行软删除,问题是当我删除用户然后使用已删除用户的电子邮件创建用户时会引发错误PG::UniqueViolation: ERROR
我已经阅读过这个并且知道这可以使用rails的部分索引功能来解决。

http://scottsmerchek.com/2015/08/03/taking-the-d-out-of-crud/

https://devcenter.heroku.com/articles/postgresql-indexes#partial-indexes

我该如何实施?
抱歉格式错误,从手机输入。

0 投票
2 回答
6098 浏览

ruby-on-rails - Rails 5 Paranoia - 如何“显示”已删除的记录?

软删除记录后,我无法show在控制器上的操作上调用它,因为它会查找与记录匹配的记录ID WHERE deleted_at IS NULLL,考虑到 gem 的用途,这是正确的,但我仍然希望能够在应用程序中以某种“只读”状态访问它,以允许用户查看存档并可能恢复它。

如何解决删除范围以便我可以再次访问该对象?

更新 1

根据@slowjack2k 的建议,我可以使用以下查询访问软删除的记录:

由于CanCanCan 的 load_and_authorize_resource原因,之后出现了一个新问题:它试图调用

忽略only_deleted过滤器,导致错误,因为仅在 deleted_at 不为空(未删除)的情况下找到所选 id,并且禁用授权“修复”它,因此它必须是CanCanCanParanoia之间的问题。

这是一个具有完全相同问题的线程:https ://github.com/rubysherpas/paranoia/issues/356

这是 StackOverflow 上的新问题:Rails 5 compatibility between Paranoia 和 CanCanCan,妥协了吗?

如果我找到解决方案,我会再次更新它,谢谢。

更新 2

问题已解决,可以在我上面提到的新问题线程中找到解决方案。