|
|
1
2
实际上,SQL不会立即启动。虽然我没有费心去查看Rails是如何实现这种魔力的(尽管现在我很好奇),但是在您真正检查结果集的内容之前,查询不会被激发。 因此,如果您在控制台中运行以下命令:
您将注意到,没有为第一行触发任何事件查询,而为第二行触发一个大型事件查询。因此,您可以安全地存储
若要确认这是正确的,请尝试我描述的方法,并检查服务器日志,以确认在页面本身上仅触发一个查询以查找事件。 |
|
|
2
1
检查 Anonymous Scopes . |
|
|
3
1
我不得不做一些类似的事情,在一个视图中应用了许多过滤器。我所做的是创建名为“带条件的作用域:
在同一类中,有一个方法从操作接收参数并返回筛选的记录:
这样,您可以使用命名的范围添加所有过滤器,并且根据发送的参数使用这些过滤器。 我从这里接受了这个想法: http://www.idolhands.com/ruby-on-rails/guides-tips-and-tutorials/add-filters-to-views-using-named-scopes-in-rails |
|
|
4
0
将起作用,并且在结束前不会启动SQL(如果您在控制台中尝试,它将立即发生,因为控制台将对结果调用。IRL SQL直到最后才会启动)。 我怀疑您还需要确保每个命名的_scope测试传入内容的存在:
|
|
|
5
0
这对于Rails 3来说很容易:
|
|
|
6
0
简短的答案是根据需要简单地改变范围,根据存在的参数缩小范围:
更好的方法是使用类似searchlogic的东西( http://github.com/binarylogic/searchlogic )它为你封装了所有这些。 |
|
cluster1 · 采取独立的新行动的好处是什么? 1 年前 |
|
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 1 年前 |
|
|
Fred Willmore · Rails控制器不呈现任何模板 1 年前 |
|
|
Diogo Amaral · 实现API请求的正确方式 1 年前 |
|
|
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
|
|
Michael Ding · Rails上的默认会话到期问题 2 年前 |
|
|
Flávio · 基于另外两个生成数组 2 年前 |