gpt4 book ai didi

ruby-on-rails - 重新定义关注的 default_scope(在 Rails 中)

转载 作者:数据小太阳 更新时间:2023-10-29 08:42:50 25 4
gpt4 key购买 nike

我想在模型问题中重新定义 default_scope,但我得到了这个:

您尝试在模型“Product”上定义一个名为“default_scope”的作用域,但 Active Record 已经定义了一个同名的类方法。

module SoftDeletable
extend ActiveSupport::Concern

included do
scope :default_scope, -> { where(deleted_at: nil) }
end
end

是的,我知道这有很多好处,但问题不在于此。
您知道如何设置相关的 default_scope 吗?

谢谢

最佳答案

这个问题与将范围定义为问题的一部分并没有真正的关系。如果尝试从模型本身定义一个名为 default_scope 的范围,您会看到同样的错误。

要设置默认范围,请使用 default_scope :

default_scope { where(deleted_at: nil) }

scope 用于创建您自己的命名范围,例如:

scope :non_deleted, -> { where(deleted_at: nil) }

可以让你写

`Model.non_deleted.where....`

因此您问题中的代码试图创建一个名为 default_scope 的范围,但是由于错误消息表明该范围 Model.default_scope... 将与用于设置默认范围的现有default_scope方法。

关于ruby-on-rails - 重新定义关注的 default_scope(在 Rails 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50462683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com