问题标签 [named-scopes]
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.
ruby-on-rails - 如果凌乱的控制器更快,为什么 Rails 范围更受欢迎?
我一直在尝试使用范围链接 Arel 查询,而不仅仅是使用我在控制器中编写的一些冗长的逻辑。但是范围比获取所有记录然后用一些逻辑筛选它们要慢。那么,我想知道为什么范围更好。
这就是我正在做的事情:
- 一个问题有很多答案
- 一个答案属于一个问题
- 一个问题有一个“question_type”列,我用它来对其进行排序
首先,范围方式...
有问题.rb:
在 questions_controller.rb 中:
然后在视图中,我循环遍历这些实例变量(现在是最多包含 10 个元素的数组)并显示结果。
以下是加载页面所需的时间(五次不同):
在 535 毫秒内完成 200 次 OK(查看次数:189.6 毫秒 | ActiveRecord:46.2 毫秒)
在 573 毫秒内完成 200 次 OK(查看次数:186.0 毫秒 | ActiveRecord:46.3 毫秒)
在 577 毫秒内完成 200 次 OK(查看次数:189.0 毫秒 | ActiveRecord:45.6 毫秒)
在 532 毫秒内完成 200 次 OK(查看次数:182.9 毫秒 | ActiveRecord:46.1 毫秒)
在 577 毫秒内完成 200 次 OK(查看次数:186.7 毫秒 | ActiveRecord:46.9 毫秒)
现在,凌乱的控制器方式......
以下是现在加载页面所需的时间(五次不同):
在 475 毫秒内完成 200 次 OK(查看次数:196.5 毫秒 | ActiveRecord:34.5 毫秒)
在 480 毫秒内完成 200 次 OK(查看次数:200.4 毫秒 | ActiveRecord:36.4 毫秒)
在 434 毫秒内完成 200 次 OK(查看次数:198.2 毫秒 | ActiveRecord:35.8 毫秒)
在 475 毫秒内完成 200 次 OK(查看次数:194.2 毫秒 | ActiveRecord:36.4 毫秒)
在 475 毫秒内完成 200 次 OK(查看次数:195.0 毫秒 | ActiveRecord:35.4 毫秒)
所以...
除了可读性之外,通过范围磨练查询还能获得什么?当有更多记录时,它最终会变得更快吗?
ruby-on-rails - Rails 范围与命名范围
scope 和 named_scope 有什么区别吗?
yii - yii 检测范围是否在使用中
我想知道是否有一种方法可以检测是否在 yii 的 AR 搜索中使用了范围?
例如,一个模型可能包含 2 个作用域:
我这样称呼AR:
这是一个非常动态的站点,有超过 2 个范围,有些使用,有些没有。如果正在使用另一个范围,则有几个范围不应应用。为了避免数百条if else
语句,我可以这样做:
ruby-on-rails - Rails 3.2:链接 lambda 范围?
在我的 Rails 3.2.8 应用程序中,我有一些命名范围,我想在某些情况下将它们链接在一起。
因此,例如,我有这两个范围:
我单独使用它们,但我也希望能够像这样一起调用它们:
当我尝试它抱怨 in_date_range 不是 Array 的方法时。
但我有另一个范围,
如果我这样做
有用!显然活动范围返回一个关系,而 lambda 范围返回数组,因此不能被链接。
我很想知道为什么更简单的作用域和 lambda 作用域之间的区别,参数如何影响它,以及除了我已经完成的编写组合作用域之外我还能做些什么。
有效,但不是很干燥(因为我也需要单独的范围)或 Rails 风格。在这里和其他地方搜索我已经看到了类似的问题,但似乎没有一个适用于这种情况,我试图用参数链接两个 lambdas。
ruby-on-rails - 动态访问命名范围
如果我有 3 个命名范围,例如
还有一个功能
其中变量是一个字符串(“test1”,“test2”或“test3”)
如何仅通过知道该变量的值来访问命名范围?
就像是Foo.variable
ruby-on-rails-3 - Rails:更好地理解动态范围
这是我的“动态”范围:
User
上面的方法在我的模型中包含的一个模块中。
因此,您可以在代码中访问它,如下所示:
anonymous scopes
在 Google 搜索动态范围时,我在( http://railscasts.com/episodes/112-anonymous-scopes )上遇到了 Ryan Bate 的 RailsCast 。我在使用 Rails 3 后对其进行了修改,但想知道在编写动态范围时我是否走在正确的道路上?
由于我正在编写的一些复杂 API 的性质,我发现自己有时会编写动态范围。
ruby-on-rails - validate_uniqueness_of 可以与自定义范围一起使用吗?
我正在做一个 RoR 项目,我想对我的一个模型进行唯一性验证,以检查自定义范围:
只是,这行不通。它检查数据库中不存在的活动列并引发此错误:
那么,我的问题是有什么办法可以使这项工作,还是我必须编写一个自定义验证器?如果是这样,是否有关于过度访问数据库应该是什么样子的任何提示?
ruby-on-rails - 具有多个参数的 Rails 范围
在我的 offer.rb 模型中,我正在对拥有这些优惠的客户进行一些过滤。但是我希望能够在我的范围内传递另一个参数来搜索,例如,客户的年龄左右。
这就是我现在的报价模型中的内容:
在视图中:
在这个范围内,我怎样才能通过客户的年龄?
谢谢!
ruby - 在范围内的多个列上思考 Sphinx OR
我需要一种调节范围的方法,以便它检查值是否存在于三列之一中。这不是我的代码,我刚刚被告知要编辑它,所以很难理解。
所以,我在 MYSQL 中的条件是:
我尝试了以下方法:
但这不起作用。
ruby-on-rails - Rails:has_many 关联的范围
我有 2 个模型 Person 和 PersonInterest : People 包含有关一个人的所有信息 Person Interests 存储一个人的兴趣(person_id,interest_id)
人 has_many PersonInterests
我将如何创建一个可以搜索所有具有相同interest_id 的人的范围