问题标签 [acts-as-paranoid]

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 投票
1 回答
2859 浏览

ruby - 在设计登录时取消删除acts_as_paranoid 已删除用户

我有一个 Rails 3.1.3 应用程序,devise用于用户身份验证并使用acts_as_paranoid. 我希望在重新创建密码、用户注册和用户登录时取消删除这些帐户,因此如果他们提供已删除的电子邮件,我会获取该帐户,使其再次生效,然后继续执行操作(重新创建密码或登录)。

但是在Users::SessionsController#create操作中,在取消删除用户后,它会收到一个未经授权的错误(但用户现在应该是可见的)。代码是:

如果我resource.reload在取消删除后添加一个电话,它不会改变任何东西。如果我再次登录,用户会正常登录,因为它在上一次尝试中未被删除。

为什么会这样?如何在一次create通话中取消删除并登录?

0 投票
0 回答
678 浏览

ruby-on-rails-3.2 - has_friendly_id 不适用于acts_as_paranoid 模型

在我的联系人模型中添加记录时出现以下错误。

联系模型看起来像

现在的情况是,如果添加了一个具有相似名称的新联系人并且现有联系人偏执,那么friendly_id 无法找到该记录并创建一个具有相似名称的新 slug,但 Contact 模型不会接受它,因为该 slug 名称已经存在。

有没有办法让friendly_id也考虑偏执记录,即使用类似的东西

scope => :with_deleted

0 投票
1 回答
3071 浏览

ruby - Rails act_as_paranoid 和 has_many :through

所以我正在使用 rails3_acts_as_paranoid gem,并且在使用 has_many 控制范围时遇到了一些问题:通过关联。

例如

-

-

现在让我们在 users_controller.rb 中的某处说我想查询属于用户的所有文件,无论它们是否被删除,和/或属于已删除的文件夹。所以很自然我会假设做如下的事情

with_deleted方法是否可以删除files.deleted_at IS NULL

...但是...它不会删除在幕后使用的文件夹的 default_scope。所以我们仍然有一个folders.deleted_at IS NULL条件,阻止我检索属于那些已删除_at 不为空的文件夹的文件。

我想继续使用acts_as_paranoid,因为它在我的应用程序的所有其他地方都非常有用,并且我尽量不做手动过滤和弹出.where_values数组元素之类的事情。但我不太了解处理复杂的范围或可用的方法。

0 投票
1 回答
838 浏览

ruby-on-rails - 保持与 act_as_paranoid 的关联

我有两个模型,其中一个是用户,另一个是评论。评论属于用户。

当我在控制器中执行 user.delete 时,我得到了设置的 deleted_at 列和隐藏记录的预期结果。

我的问题是用户的评论关联设置为空。所以现在在网站上它显示没有用户拥有评论。我希望评论仍然显示用户名不是“无”或“匿名”等。

查看 github 上的源代码https://github.com/goncalossilva/rails3_acts_as_paranoid/blob/rails3.2/lib/acts_as_paranoid/core.rb似乎调用 run_callbacks 反过来导致 Rails 3 回退到 Nullify 默认的关联.

就我而言,我只想在删除时关闭用户帐户。不再出现在查询中,因此 Authlogic 将拒绝它们并且用户索引页面不会显示它们。但仍然允许用户拥有的所有东西仍然归他们所有(因为他们可能会回来,等等)。

还有比acts_as_paranoid更好的方法吗?

0 投票
1 回答
730 浏览

ruby-on-rails-3 - rails3_acts_as_paranoid 和carrierwave:保持图像软删除

我正在使用两个 gem rails3_acts_as_paranoidcarrierwave。偏执狂的软删除、硬删除和恢复功能工作正常。但是,当我软删除一个项目时,存储的图像会被载波删除。

如何配置carrierwave或acts_as_paranoid,以便仅在硬删除时删除图像?

0 投票
1 回答
580 浏览

ruby-on-rails-3 - 使用多个 gem 时模块名称冲突(在我的例子中:social_stream 和 rails3_acts_as_paranoid)

我正在使用这两个 gem:social_stream(rails 引擎)和rails3_acts_as_paranoid(lib)。

当我尝试查看主页时,出现以下错误:

显示 /home/pinouchon/code/sharewizz/webapp/app/views/home/index.html.erb 其中第 25 行提出: 未初始化的常量 ActsAsParanoid::Relation::Public 提取的源(在第 25 行附近):

完整跟踪:


我认为这是因为这些 gem 定义的 2 个模块具有相同的名称:Relation.

在 /home/pinouchon/.rvm/gems/ruby-1.9.3-p392@project/gems/rails3_acts_as_paranoid-0.2.5/lib/acts_as_paranoid/relation.rb 中:

在 /home/pinouchon/.rvm/gems/ruby-1.9.3-p392@project/gems/social_stream-base-0.21.0/app/models/relation.rb

在 /home/pinouchon/.rvm/gems/ruby-1.9.3-p392@project/gems/social_stream-base-0.21.0/app/models/relation/public.rb 中:

以前,我只使用社交流,没有冲突的模块名称。现在,好像ActsAsParanoid::Relation正在替换Relation,因此第.../social_stream/.../relation.rb159 行出现了问题。

但令人惊讶的是,Relation 模块rails3_acts_as_paranoidmodule ActsAsParanoid. 所以它不应该干扰Relation在全局范围内定义的 social_stream ,但它确实如此。我可能错过了一些东西。

我对导致错误的原因是否正确?有什么办法可以解决吗?

0 投票
1 回答
526 浏览

ruby-on-rails-3 - ThinkingSphinx::SphinxError index item_core,item_delta:查询错误:在架构中找不到字段“deleted_at”

我有一个Item模型:

然后我停止服务器,运行rake ts:rebuild && rake ts:reindex && rake ts:restart,重新启动服务器。我仍然得到错误。

触发错误的查询是这样的:

怎么了 ?


注意:我正在使用acts_as_paranoid。我的数据库已迁移,表items中有列deleted_at

schema.rb 中的某处:

0 投票
1 回答
220 浏览

ruby-on-rails-3 - has_many 通过 rails 3.2 和acts_as_paranoid 的问题

我正面临一种奇怪的行为。这是我的场景。

我正在创建一条新消息并向其接收者推送价值。

上述操作正确保存了message中的记录,但未能触发message_recipient记录。但是,如果我执行上述代码删除acts_as_paranoid gem,那么它工作正常。有什么办法可以解决这个问题吗?

解决方案 1:我们可以在 Message 模型上使用create , 而不是在 Message 模型上调用new。因此将创建记录,然后我可以将数据推送到收件人中。就像创建父记录并使用它的 id 我正在创建子记录一样。所以不需要触发,它工作正常。

欢迎提出建议。

0 投票
1 回答
297 浏览

ruby-on-rails - 使acts_as_paranoid 查找器有条件地排除“已删除”对象

通常,使用acts_as_paranoid 时,当您使用诸如findor之类的查找器时where,它会排除具有deleted_at(或您为删除列命名的任何内容)值而不是null 的条目。但是,我创建了一个用户权限,允许用户查看和操作数据库中甚至“已删除”(参见:隐藏)的实体。事情是,就目前而言,每次我想运行时,我都需要检查权限find,或者where,或者你有什么,如果你有这个权限使用with_deleted,而不是有一个地方检查是否act_as_paranoid 逻辑甚至应该从一开始就起作用,并且总是with_deleted在该逻辑不应该的时候添加。

有没有什么办法可以做到这一点,或者类似的事情,让它变得干燥?

0 投票
1 回答
937 浏览

ruby-on-rails - ruby-1.9.3-p448/gems/acts_as_paranoid-0.3.1/lib/acts_as_paranoid.rb:42:in `alias_method'

我正在尝试使用acts_as_paranoid gem,已添加到Gemfile(gem'acts_as_paranoid')捆绑包中更新并安装安装acts_as_paranoid(0.3.1)但是当我启动我的服务器时出现以下错误,有什么想法吗?非常感谢!