在 Rails 3 上进行分组查询和计算
Rails 3 问题。 我有一个具有以下属性的食物表:
- 名称
- 卡路里(每克)
- 脂肪(每克)
- 碳水化合物(每克)
- 蛋白质(每克)
然后我有一个 LoggedFoods 表,表示在给定时间吃过的食物。它具有以下属性:
- food_id
- number_of_grams_eaten
- ate_when (datetime)
所以我遇到的问题是我想在一个查询中获取每天(所有天)消耗的卡路里、脂肪、蛋白质、碳水化合物的总数。我一直在尝试使用新的 ActiveRecord 查询接口来完成 Rails 3 的操作,但没有成功。有什么想法吗?
Rails 3 problem.
I have a Foods table of foods with the following attributes:
- name
- calories (per gram)
- fat (per gram)
- carbs (per gram)
- protein (per gram)
I then have a LoggedFoods table representing a food that has been eaten at a given time. It has the following attributes:
- food_id
- number_of_grams_eaten
- ate_when (datetime)
So the problem I have is that I'd like to get the total number of calories, fat, protein, carbs consumed per day (for all days) in one query. I've been trying to do this Rails 3 using the new ActiveRecord query interface and had no luck. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是第一次快速浏览,可能存在一些错误,但数字一目了然。另外:我只在 sqlite3 上进行了测试,因此其他数据库上的结果可能会有所不同(如果 SUM 或组函数不同)
app/models/logged_food.rb
db/seeds.rb
(我显然不知道食物的营养信息)然后在控制台中:
Here's a quick first pass at this, there may be some bugs, but the numbers seem right at a glance. Also: I only tested this on sqlite3, so results on other databases may be different (in case the SUM or group functions are different)
app/models/logged_food.rb
db/seeds.rb
(I obviously have no idea of the nutritional information of food)Then in the console: