0

我必须计算查询返回的结果数。我知道有一个 count 方法可以计算返回的结果数,但它不起作用。这是我的查询:

@oi_report = IncidentDetailsReport.find_by_case_id(id).count

我得到了这个例外:

undefined method `count' for #<IncidentDetailsReport:0x745def8>
4

3 回答 3

2

您应该使用以下查询

@oi_report = IncidentDetailsReport.where('case_id=?',id).count

在这种情况下不要使用“find_by_case_id”

这将解决您的问题

于 2013-01-12T09:05:05.107 回答
2

显然IncidentDetailsReport.find_by_case_id(id)返回一个类型为IncidentDetailsReport没有方法的对象count,这是因为在添加到查询时find_by_case_id返回一个对象而不是关系。LIMIT 1

而不是find_by_*你可以使用where,比如:

IncidentDetailsReport.where(:case_id => id).count

于 2013-01-12T09:07:17.817 回答
2

根据文档,您可以通过 count 传递条件。所以尝试这样做:

IncidentDetailsReport.count(:conditions => "id = "+id)

否则你能用length吗?

于 2013-01-12T09:07:31.727 回答