我必须计算查询返回的结果数。我知道有一个count方法可以计算返回的结果数但它不起作用。 这是我的疑问:
@oi_report = IncidentDetailsReport.find_by_case_id(id).count
我得到了这个例外:
undefined method `count' for #<IncidentDetailsReport:0x745def8>
答案 0 :(得分:2)
您应该使用以下查询
@oi_report = IncidentDetailsReport.where('case_id=?',id).count
在这种情况下不要使用'find_by_case_id'
这将解决您的问题
答案 1 :(得分:2)
显然IncidentDetailsReport.find_by_case_id(id)
返回类型为IncidentDetailsReport
且没有方法count
的对象,这是因为find_by_case_id
返回一个对象而不是关系,因为它添加LIMIT 1
1}}到查询。
而不是find_by_*
,您可以使用where
,例如:
IncidentDetailsReport.where(:case_id => id).count
答案 2 :(得分:2)
根据documentation,您可以通过计数传递条件。所以试着这样做:
IncidentDetailsReport.count(:conditions => "id = "+id)
或者您可以使用length
吗?