ruby-on-rails - 从查询后生成的模型中删除属性
问题描述
我使用执行查询find_by_sql
,返回的属性之一是count(*)
. 但我只想提取不同变量的计数并将其从返回的模型中删除。下面是一个查询示例:
Model.find_by_sql("select prop1, sum(prop2), count(*) OVER() AS full_count from table
group by prop1
limit 3")
Model
我得到一个带有属性( )的数组,Model.attributes
如下所示:
[{prop1: "A", prop:3, full_count: 20}, {prop1: "B", prop:4, full_count: 20}, {prop1: "C", prop:6, full_count: 20}]
这就是渲染到前端的内容。
但基本上我full_count
会将属性存储在一个变量中,并且我想从数组中的对象中删除它。所以我希望结果是:
[{prop1: "A", prop:3}, {prop1: "B", prop:4}, {prop1: "C", prop:6}]
我试过这样做:
query_result.each do |obj|
obj.attributes.delete('full_count')
end
但这没有用。
任何帮助将不胜感激!我尝试搜索但没有找到任何有效的方法。
解决方案
如果您要呈现为 JSON,您可以这样做
query_result = Model.find_by_sql("select prop1, sum(prop2), count(*) OVER() AS full_count
from table
group by prop1
limit 3")
full_count = query_result.first.full_count
query_result.as_json(except: :full_count)
推荐阅读
- r - 我不知道如何绘制 R 中某些代码结果的概率分布
- javascript - html5 currentTime 和音量更改未生效
- angular5 - 如何将 CK-editor 与 Angular 5 集成。我正在尝试将 ck-editor v4 与应用程序集成,我得到“元素引用不是通用的”
- c# - 如何在 Visual Studio 安装程序项目中添加经过验证的发布者
- c# - 如何限制并发请求处理同时进行控制器中的操作?
- javascript - SetVariable(变量计数,变量计数)
- mysql - 如何为我的 nodejs 项目创建 mysql 数据库?
- mysql - 如何保持我的“有效期”行始终相对于“到期日期”行进行更新?
- c - 嵌套类字符串结构中的嵌入与指针
- r - ggplot中的箱线图与来自不同数据的geom_line