在Rails中搜索和计算匹配条件的记录

时间:2014-10-25 20:17:50

标签: ruby ruby-on-rails-4 datatables

如果我的搜索条件出现空结果,我试图避免在数据表中出错。有没有办法获得将在表中返回的行数?

我的表格代码如下:

<% @loads.each do |load| %>
<% if load.trucker == current_trucker and (load.pickup_datetime <= Date.today or load.current_status == "ON HOLD")  %> 

我只想提前一行检查它是否会返回1行或更多行(如果它为空,我可以删除结果)。

有什么想法吗?对我很轻松 - 我是一个业余爱好的人。

由于

1 个答案:

答案 0 :(得分:0)

不是循环遍历所有@loads,而是将条件集成到查询中。例如,控制器中的

@loads = @loads.where(
  'load.trucker == ? and (load.pickup_datetime <= ? or load.current_status == ?)', 
  [current_trucker, Date.today, 'ON HOLD']
)

希望这可以解决您视图中的问题,但如果没有视图代码和堆栈跟踪,则很难调试。

至少,将数据库查询移动到控制器是朝着正确方向迈出的一步。使用controller test进行测试应该更高效,更容易。