【问题标题】:Searching and Count records matching criteria in Rails在 Rails 中搜索和计数匹配条件的记录
【发布时间】:2014-10-26 08:19:20
【问题描述】:

如果我的搜索条件出现空结果,我会尽量避免在数据表中出现错误。有没有办法计算表中将要返回的行数?

我的表格代码如下:

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

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

有什么想法吗?对我放轻松-我是一个爱好水平的人。

谢谢

【问题讨论】:

  • 包含您遇到的错误
  • 我得到的错误来自数据表 - “为第 0 行请求未知参数 '0'。”如果表的条件为空(null),它会给出这个。

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2018-10-07
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多