在我的新rails(4.1)应用程序中,我有两个数据模型:
在一个视图中,我想显示今天的每日数据(1)+当前(最后)值,这是实时流(2)中的最后一个值 - 然后每当用户重新加载时都会更新。
问题是,两个表中的命名是完全不同的,并且一些数据字段也有所不同,所以
data = daily_data + current_data.last
不起作用。我的想法如下:
仅采用相关列:
daily_data.select("sales, date")
live_data.select("revenue, timestamp").last
将时间戳修改为日期
live_data.timestamp.to_date
匹配"销售"收入"收入"并合并/合并两个(仅适用于视图,不在ActiveRecord中)
我的想法好吗?我该如何实施呢?我在协会上遗漏了什么吗? (我还冒险进入单表继承,并考虑定义一个父数据模型" company_data",并制作它的daily_data和live_data子模型,但这可能是过度的 - 或者是吗?)
修改
手术后,我打算使用
.group_by_date
使用ChartKick将数据显示为图表。
编辑结束
很抱歉,如果这个问题很愚蠢,我还是在轨道上找到新的并且搜索了1.5小时......
提前谢谢!
答案 0 :(得分:0)
daily_data.select("sales as revenue, date as datadate")
live_data.select("revenue, timestamp as datadate").last
这种方式在两种情况下属性都是收入和数据。
编辑:
您对group_by的评论是原始问题中没有的其他信息。由于group_by由数据库评估,因此您仍需要向其发送数据库中使用的字段名称。 select解决方案仅更改ActiveRecord对象中的属性。
@data = daily_data.select("sales as revenue, date as datadate").group_by_date(:date)
@data << live_data.select("revenue, timestamp as datadate").last