【发布时间】:2011-08-18 19:50:10
【问题描述】:
我有一个非常大的数据集,我正在对这些数据进行大量的查询后操作(排序、过滤等)。我想对仅包含排序、过滤和分页所需信息的 ActiveRecord 对象数组进行所有这些操作,然后在最后添加显示所需的数据。
例如,假设我有一个包含两个表的数据库:balloon_players 和 player_infos。棒球运动员表包含所有有趣的东西(统计数据、球队、姓名、生日等)。 Player_infos 包含 player_id、player_rank 和 player_position。我有 15000 名球员,我想找到 100 到 150 名有史以来最好的接球手。我检索了一个包含所有 player_infos 的数组,过滤到仅捕手,按 player_rank 排序,然后检索记录 100-150。
将生成的 player_info 记录与其对应的棒球运动员记录合并的最佳方法是什么? Hash.merge 可以完美运行,但我不想将这些对象转换为哈希。 ActiveRecord 是否支持类似的东西?
请注意,我有一个限制,我不能简单地使用 SQL 查询数据 - 我必须手动排序和过滤包含所有 15000 个 player_info 记录的对象。
【问题讨论】:
-
为什么不想将对象转换为哈希?是否只是通过命名方法(
player.name)而不是哈希键(player[:name])保留对属性的访问?
标签: ruby activerecord