问题标签 [named-scope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6282 浏览

ruby-on-rails - 带有 :joins 和 :select 的 default_scope

我尝试通过以下方式定义 default_scope:

我从 Rails 得到的是:

当我将其定义为 named_scope 时,一切都很好:

这应该是一个错误还是正确的行为?

我正在使用 Rails 2.3.4。

谢谢!

0 投票
1 回答
688 浏览

ruby-on-rails - rails 将类方法转换为命名范围

Rails 新手在这里。我正在尝试将一些类方法放入 named_scopes。我的应用程序结构类似于带有用户评论的博客应用程序。每个评论模型都有一个分数属性,该属性由其他用户的评分决定。我希望能够有一个命名范围,从他们所做的每条评论的所有分数的总和中返回总分最高的前十名用户。

为了获得总分,我创建了这个方法:

然后为了获得前十名的分数作为一个类方法,我使用这个:

我一直在尝试将相同的功能放入命名范围,但我似乎无法弄清楚。

有什么建议么?

0 投票
1 回答
397 浏览

ruby-on-rails - 命名范围不与时区合作?

我遇到了一个非常棘手的问题。这是我的模型:

现在如果我这样做

除非我将 published_at 向后移动一小时,否则它不会返回帖子。但:

它工作正常!

我要疯了,有人知道从哪里开始调试吗?

0 投票
3 回答
963 浏览

ruby-on-rails - Rspec、模型加载顺序、固定装置和 named_scope 挑战

我有一些球员,球员有交易状态。而不是硬编码贸易状态,如“活动”和“非活动”,然后必须去寻找字符串,我想我会很聪明,有一个单独的 TradeState 模型,这样玩家就有一个 trade_state_id(玩家只能在一次一个贸易状态)。

现在,通过使用命名范围然后说“Player.active”来获取所有活跃玩家将是一种方便。为此,我需要获取与“活动”匹配的 TradeState 记录的 ID,因此我在 Player 类中提出了这一点:

这在脚本/控制台中测试时就像一个魅力,但当我去测试时它不起作用。我正在使用 RSpec,但我怀疑这无关紧要。当我运行最简单的测试时,我收到以下错误:

“将 id 称为 nil,它会错误地为 4”

据我所知,测试框架正在按字母顺序加载和解析模型。框架解析 Player 模型中的 named_scope 调用,并尽职尽责地查找第一个处于活动状态的 TradeState 记录的 id。但是,该模型尚未处理并且尚未准备好,因此有关获取 nil 的 id 的错误。

起初我以为是因为 trade_states 表中可能没有任何记录,所以我在 before(:each) 块中创建并保存了我需要的 trade_states,但这不起作用。所以我做了一些固定装置并尝试加载它们,但这没有用。

这看起来有道理吗?还有其他解释吗?变通工作怎么样?我可以尝试模拟 TradeState 对象,我会试一试。

非常感谢您的宝贵时间。

0 投票
1 回答
192 浏览

ruby-on-rails - "Section" has_many versioned "Articles" -- 我怎样才能得到最新鲜的子集?

我有一个模型Section,它有很多文章(Article)。这些文章是版本化的(名为version存储它们的版本号的列),我希望检索最新的。

从 section_id 2 检索所有文章的 SQL 查询是:

我一直在尝试在ArticleModel 类中创建一个命名范围,但没有成功:

用于获取我需要的任何版本的命名范围如下所示:

我不想结束使用find_by_sql,因为我试图尽可能保持高水平。欢迎任何建议或见解。提前致谢!

0 投票
1 回答
1420 浏览

ruby-on-rails - 命名范围与 find_by_sql(具体示例)

只是出于好奇,有没有人知道使用命名范围(而不是 find_by_sql)构建以下集合的更好方法?

0 投票
1 回答
630 浏览

ruby-on-rails - 我可以在 Rails 中创建一个 *un*named 范围吗?

我知道你可以在 Rails 中创建命名范围,它允许你指定条件,然后可以在以后构建:

这通过创建一个直到稍后才评估的代理对象来工作。我想知道的是是否可以创建一个动态的命名范围?

我的意思是,有没有一种我可以使用的方法“foo”

然后scope作为代理对象传递,我可以做更多.find的 s 或其他范围调用?

0 投票
2 回答
1652 浏览

sql - named_scope 按最后评论日期排序帖子

帖子 has_many 评论

我正在使用搜索逻辑,它将按命名范围排序。所以,我想要一个按每个帖子的最新评论排序的命名范围。

我不确定如何做 a:joins并且只获取最新的评论并按其created_at字段排序,所有这些都在 a 中named_scope

我正在使用mysql,仅供参考。

编辑:

这是我要模拟的 SQL 查询:

0 投票
3 回答
7080 浏览

ruby-on-rails - rails唯一记录中的named_scope?

是否可以让named_scope某个列的返回记录唯一?

例如

这会给我三种风格,但如果我想确保标题不同怎么办?在这种情况下,可能有三个具有相同样式的记录,我希望这个 named_scope 只给出唯一的标题值。

所以["style 1", "style 1", "style 1"]不可能,它会强迫自己付出["style 1", "some style 2", "maybe another 3"]

  • 我认为group可以这样做,我现在正在使用它。如果有人有任何意见,无论如何都会很棒。
0 投票
2 回答
1681 浏览

ruby-on-rails - 如何在 named_scope 中返回布尔结果?

我得到一个零结果。我希望它返回 true。我该怎么办!?

另外,有没有更好的方法来写这个?