【问题标题】:what does default_scope -> { kept } in rails means?default_scope -> { keep } in rails 是什么意思?
【发布时间】:2021-09-05 19:02:39
【问题描述】:

我是 Rails 世界的新手。在我正在工作的一个现有 Rails 项目中,我在模型类中看到一条线,如下所述。有人可以告诉我这意味着什么。我尝试搜索文档,但在任何地方都找不到“保留”关键字。

default_scope -> { kept }

【问题讨论】:

  • 你能把你的模型在default_scope定义的地方发过来吗?
  • 我的假设是 kept 是模型的范围,因此要求查看您的模型定义
  • 您可以使用method(:kept).source_location 尝试查看其定义的位置。这不适用于通过scope 宏动态定义的方法。

标签: ruby-on-rails rails-migrations


【解决方案1】:

据我所知,这是一个 gem 可能提供的范围,它允许您“丢弃”记录(而不是删除它们)。默认范围设置为仅返回保留的结果(即不丢弃)。当然,也可以手动开发功能,但您会在项目中找到代码(例如在模型或关注点中)。

实现这一目标的流行宝石是https://github.com/jhawthorn/discard(不隶属于它),它有效地使用了kept。也许检查你的 Gemfile 你的项目使用什么 gems 并搜索他们的文档。

【讨论】:

  • AKA 软删除。
猜你喜欢
  • 2018-04-17
  • 1970-01-01
  • 2016-10-29
  • 2015-01-03
  • 2011-08-28
  • 1970-01-01
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多