如何使用 Arel(大概)创建一个不影响 Rails 3 中查询的 ActiveRecord 作用域?

发布于 2024-12-03 13:51:14 字数 310 浏览 0 评论 0原文

本质上,我正在寻找一种无操作类型的关系来应用于范围链。

假设我有一个范围链:

Post.approved.published.all

现在,出于调试目的,我希望使 published 范围不执行任何操作,以便该链仅返回 approved 帖子,无论它们是否发布

我会在以下方法中返回什么:

def self.published
  # what to return?
end

Essentially I am looking for a no-op type of relation to apply to a chain of scopes.

Lets say I have a chain of scopes:

Post.approved.published.all

Now, for debugging purposes, I wish to make the published scope do nothing at all, so that the chain will only return approved posts, regardless of whether they are published or not.

What would I return in the following method:

def self.published
  # what to return?
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只涨不跌 2024-12-10 13:51:14

published 设为 all 的别名,或使用 < code>scoped 返回一个可以链接附加条件的关系:

def self.published
  all
  #or
  scoped
end

我会使用一个范围,返回 all...

scope :published, all

或者,使其成为 的别名>范围

scope :published, scoped

Make published an alias for all, or use scoped to return a relation to which additional conditions can be chainged:

def self.published
  all
  #or
  scoped
end

I would use a scope, returning all...

scope :published, all

or, make it an alias for scoped:

scope :published, scoped
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文