- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此搜索构建一个 RoR (rails 4) 项目,并在具有 bootstrap 3 样式的表格中显示。
我是 RoR 的新手,我的英语不是很好。对此我感到很抱歉。请帮我!感谢一切!
<div class="panel panel-primary">
<div class="panel-body">
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>Grado</th>
<% meses = ((@cargo_total_grado.fecha_inicio)..@cargo_total_grado.fecha_final).map {|d| [d.strftime('%b'), d.year]}.uniq %>
<% meses.each do |m| %>
<th> <%= m.first + " " + m.second.to_s %> </th>
<% end %>
<th>Total</th>
</tr>
</thead>
<tbody>
<% @cursos.each do |curso| %>
<% alumnos = Alumno.select("id").where(:id => curso.alumno_ids) %>
<tr>
<td><small><%= curso.id_curso %></small></td>
<% total = 0 %>
<% meses.each do |m| %>
<% inicio = (m.second.to_s + m.first.to_s + "-01").to_date %>
<% final = inicio.next_month %>
<% mes = alumnos.map { |e| e.planes.map {|r| r.cargos.where("fecha_cargo >= ? AND fecha_cargo < ?", inicio, final).sum(:monto)}.sum }.sum %>
<% total += mes %>
<td><small> <%= number_to_currency(mes) %> </small></td>
<% end %>
<th><small><%= number_to_currency(total) %></small></th>
</tr>
<% end %>
<tr>
<th></th>
<% totales = 0 %>
<% meses.each do |m| %>
<% inicio = (m.second.to_s + m.first.to_s + "-01").to_date %>
<% final = inicio.next_month %>
<% mes_total = @cursos.map { |c| c.alumnos.map { |e| e.planes.map {|r| r.cargos.where("fecha_cargo >= ? AND fecha_cargo < ?", inicio, final).sum(:monto)}.sum }.sum }.sum %>
<% totales += mes_total %>
<th><small> <%= number_to_currency(mes_total) %> </small></th>
<% end %>
<th><small><%= number_to_currency(totales) %></small></th>
</tr>
</tbody>
</table>
</br>
</div>
最佳答案
所以您的问题是您的 SQL 调用太多了。 Rails 需要为每一个导致速度下降的问题查询数据库。
你应该看看Eager Loading为了解决这个问题,通常称为 N + 1 查询问题。
Active Record lets you specify in advance all the associations that are going to be loaded. This is possible by specifying the includes method of the Model.find call. With includes, Active Record ensures that all of the specified associations are loaded using the minimum possible number of queries.
例如,您似乎要将多个类(class)加载到您的 @cursos
对象中,然后让加载多个 Alumno
对象然后加载 Cargo
对象。这将导致对数据库的多次调用。而不是在你的模型中,你可以做这样的事情:
@cursos = Curso.includes(alumnos: [:cargos]).all
对于你回答的第二部分,是否可以显示加载动画:
是的,你可以,但是你必须使用 AJAX 调用才能从你创建的返回所需信息的其他路由加载信息。它并不太复杂,但它确实给应用程序增加了一点复杂性。 Take a look at this if you're interested .
附言Parece que hablas español? Si hay algo que no entiendes puedo explicártelo por chat, solo me avisas cuando tengas tiempo.
关于ruby-on-rails - 优化搜索 RoR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145694/
我已经使用 RailsInstaller 安装了 Ruby on Rails,还在 Windows 8 中安装了 postgresql。我正在尝试使用文件运行 rails server,但我收到错误消
我正在尝试关注 Ryan Bates RailsCast #196: Nested model form part 1 。 Ryans 版本有两个明显的区别:1)我使用的是内置脚手架,不像他使用的那么
你好,我通过内部连接获取了重复的数据行。我编写了带有 OR 条件的内部连接。 Controller userscontroller.rb @users = User.search(params[:se
我已经创建了一个表,现在我想给表添加一个关联(has_many 关系)。如果我已经创建了一个表并且在创建模型后已经完成了 rake db:migrate,我该怎么办? 在ror中创建表后是否可以添加关
我正在尝试将数据插入 ROR 中的数据库,对于电话号码,我采用了字段整数..但它只采用了 9 位数字..如果我尝试输入 10 位数字。它提供错误作为。 Mysql2::Error: Out of ra
如何获得事件项目菜单?循环生成菜单 我想为这个项目使用其他 css 属性。有任何想法吗?最好是js,jquery... 最佳答案 link_to_unless_
我正在编辑设计生成的用户模型,为用户添加一个语言字段,他可以在其中添加他从组合框中所说的一种或多种语言。 我的问题是在 mysql 中表示这一点的最佳方式是什么。我不知道他会说多少种语言,所以可能最多
我对 Rails 很陌生,并且对这个问题的逻辑有点困惑。 我有一张员工表(使用mysql),每个员工都有一个manager_id键,该键指的是他们向其汇报的员工。例如,标题为“CEO”且 id 为 1
那里的例子很少,但没有一个是非常清楚的(或在旧版本上)。 我想调用 MySQL 过程并检查返回状态(在 rails 4.2 中)。我看到的最常见的方法是调用 result = ActiveRecord
我在 /public 下有一些静态错误页面,我在其中按以下方式链接了一个名为 errors.min.css 的样式表: 但是,当我在除根路径 (/abc/non-existent-url) 之外的路
我想在 RoR 中将一张图片叠加在另一张图片上。 在纯 html 中这样做很容易(来自 https://stackoverflow.com/a/1997397/1760830 ): 当
我正在努力将静态站点引入 ruby on rails 应用程序,以便我们可以构建功能等。 我已经使用页面 Controller 设置了所有静态页面,并将所有静态页面存储在 View /页面下...
我在表格中有一个单元格,看起来像 我想编写一个 CSS 类,根据 play_result.status 的值更改此单元格的字体颜色,绿色代表字符串“OK”,橙色代表“CHANGED”,蓝色代表“
我正在尝试绑定(bind)帖子搜索页面上的类别下拉列表。下拉菜单应将类别图像显示为下拉菜单中类别名称左侧的图标。 下一行绑定(bind)所有类别并在下拉列表中显示它们的名称: 'Any') %> 我
在 Ruby 代码的 TextField 中,我想在模糊事件中检查指定的类是否被应用。请建议一些技术或方法。下面给出了我使用的示例代码。 TextField 的 Ruby 代码:: 4, :t
试图弄清楚 Ruby On Rails 中如何处理并发。 如何获取一段代码来锁定数据库中的行并在需要时强制回滚? 更具体地说,有没有办法强制某一段代码完全完成,如果不回滚?我想在我的项目中为交易添加历
我们正在开发一个 Rails 应用程序,其中一类用户可以编辑和创建文章。有时这些文章包含指向网站上其他文章的链接。执行以下操作的最佳方法是什么? 将链接存储在数据库中 在页面上呈现链接 目前我们有绑定
我有以下 ROR 代码 def func (point,c,r) res=isPointInCircle(point,c,r) #returns true/ false if
如何在 Rails 3.0 中使用 MD5 加密字符串?模型中的 pass = MD5.hexdigest(pass) 产生 未初始化的常量 MyModel::MD5 最佳答案 为此,您可以使用 Ru
我正在寻找有关监控每天大约有 250,000 次插入的特定表的建议。规模不大,但增长迅速,我们不能像现在这样继续工作。 主要应用程序依赖于带有 MySQL 数据库的 RoR4。数据从多个 Radius
我是一名优秀的程序员,十分优秀!