如何访问 Mongoid 中类方法中的作用域条目?

发布于 2025-01-03 05:36:12 字数 705 浏览 0 评论 0原文

我有一个 RSS Feed 类,它保存 feed url、名称等,我想添加一个 posts 方法来循环 feed 中的每个帖子并返回结果。我有以下代码,但收到许多 SystemStackError: stack level too deep 错误。

class Feed
  field :name
  field :url

  belongs_to :project

  def self.posts
    results = []
    scoped.all.each {|f| results << RssFeed.get(f.name, f.url)}
    results
  end
end

我的应用程序有不同的项目,每个项目都有许多提要。因此,在我的代码中,我尝试从属于特定项目的所有 rss 提要中获取所有帖子,如下所示:

project.feeds.cached

我可以在 posts 方法中调用 scoped ,该方法将返回 Mongoid ::Criteriascoped.all.eachscoped.entries 都返回堆栈级别太深错误。我想知道如何从 posts 类方法中访问 project.feeds 范围?

提前致谢!

I have an RSS Feed class, which holds the feed url, name, etc. and I want to add a posts method to loop through each post in the feed and returns the results. I have the following code, but am getting many SystemStackError: stack level too deep errors.

class Feed
  field :name
  field :url

  belongs_to :project

  def self.posts
    results = []
    scoped.all.each {|f| results << RssFeed.get(f.name, f.url)}
    results
  end
end

My application has different Projects, and each project has many feeds. So in my code I'm trying to get all posts from all rss feeds that belong to a particular project like this:

project.feeds.cached

I am able to call scoped in my posts method which will return a Mongoid::Criteria but scoped.all.each or scoped.entries both return stack level too deep errors. I was wondering how I can access the project.feeds scope from within my posts class method?

Thanks in advance!

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

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

发布评论

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

评论(1

明媚殇 2025-01-10 05:36:12

我的愚蠢错误 - cached 是一个保留字。

My silly mistake - cached is a reserved word.

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