我有很多字段的用户模型,我想显示一个 表作为其中 2 个字段的矩阵: - 创建时间 - 类型 对于 created_at,我只是这样使用了一个 group_by:
(User.where(:type => "blabla" ).all.group_by { |item|
item.send(:created_at).strftime("%Y-%m-%d") }).sort.each do |
creation_date, users|
这给了我每个创建日期的所有用户的一个很好的数组,所以 我 table 上的线条没问题。但是我想显示多行, 每个代表每种类型的用户的子选择。 所以目前,我每行执行一个请求(每种类型, 只需替换“blabla”)。
目前还可以,因为我有 只是几种类型,但这个数字很快就会增加很多,而且在 恐怕这不会有效。
关于如何实现预期结果的任何建议?
谢谢,
亚历克斯
最佳答案
这里的一般答案是执行 Map / Reduce .通常,由于性能限制,您不会实时执行 map-reduce。相反,您按计划运行 map-reduce 并直接查询结果。
这是关于 map-reduce for Ruby 的入门读物.这是 another example专门使用 Mongoid。
关于ruby-on-rails-3 - Rails 3 和 mongoid : How would you about sorting/grouping collect to display as a 2 dimension table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5231156/