[英]On Rails ActiveRecord show count based on parameter
我在整个应用程序中都有一些报告方法,在某些情况下,我想返回计数(对于仪表板),而在其他情况下,则返回完整的结果集以查看报告的详细信息。
我想知道的是,有一种方法可以动态选择显示计数(而不是我在这里所做的事情):
def get_query_results(reporting_parameters, count_only = true)
#put together reporting details...
if count_only
MyModel.where(query).count
else
MyModel.where(query)
end
end
我考虑过将局部变量设置为查询参数的结果,然后调用计数,但这会再次查询数据库(即使没有查询也可能增加内存使用)。
有没有一种方法可以有效地在一个查询中做到这一点? 这是我在应用中喜欢的几个查询之一,否则我不在乎。 另外,我将使用三元数,但是我的应用程序中的实际查询条件比此处的示例长得多,这使其无法读取。
假设您正在执行以下操作:
@collection = get_query_results(...)
然后,您可以随后执行此操作,而不是在操作内部执行此操作:
@collection.count
如果您想调用其他方法:
def total_number(collection)
collection.count
end
@collection = get_query_results(...)
no_of_records = total_number(@collection)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.