gpt4 book ai didi

ruby-on-rails - Rails 3 默认范围,覆盖范围

转载 作者:行者123 更新时间:2023-12-04 11:29:34 27 4
gpt4 key购买 nike

我有一种情况,现有应用程序的行为正在发生变化,这让我很头疼。

我的应用程序有照片。照片有状态:"batch", "queue", or "complete" .应用程序中的所有现有照片都是“完整的”。

99% 的时间我只需要显示完整的照片,并且在所有现有的代码库中,我需要将每次对照片的调用限制为仅显示完整的照片。

但是,在与上传和分类照片相关的屏幕中,我需要能够相当容易地覆盖默认范围以显示批量或排队的照片。

像许多其他人一样,我需要找到一种方法来在某些情况下轻松覆盖默认范围。我查看了这些问题( 12 ),它们似乎没有回答我正在寻找的问题。

我希望工作的代码是这样的:

class Photo < ActiveRecord::Base
...
default_scope where(:status=>'complete')
scope :batch, unscoped.where(:status=>'batch')
scope :queue, unscoped.where(:status=>'queue')
...
end

但是,这不起作用。我尝试将作用域方法包装在 lambdas 中,但也没有用。

我意识到 default_scope 带有行李,但如果我不能将它与覆盖一起使用,那么我正在考虑添加 scope :complete ...并且必须梳理我现有应用程序中对照片的每次调用并添加 .complete为了过滤未处理的照片。

你会如何解决这个问题?

最佳答案

def self.batch
Photo.unscoped.where(:status=>"batch")
end
这个帖子更权威: Overriding a Rails default_scope

关于ruby-on-rails - Rails 3 默认范围,覆盖范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919307/

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