【发布时间】:2009-06-19 15:01:25
【问题描述】:
我有一个 ActiveRecord 模型 Language,带有 id 和 short_code 列(还有其他列,但它们与这个问题无关)。我想创建一个方法,该方法将获得一个短代码列表,并返回一个 ID 列表。我不关心关联,我只需要最终得到一个看起来像 [1, 2, 3, ...] 的数组。
我的第一个想法是做类似的事情
def get_ids_from_short_codes(*short_codes)
Language.find_all_by_short_code(short_codes.flatten, :select => 'id').map(&:id)
end
但我不确定这是否不必要地浪费时间/内存/处理。
我的问题有两个:
- 有没有办法运行 ActiveRecord 查找,它只返回某个表列的数组而不是实例化对象?
- 如果是这样,收集长度为 n 的数组而不是实例化 n ActiveRecord 对象真的值得吗?
请注意,对于我的特定目的,n 大约是 200。
【问题讨论】:
标签: ruby-on-rails optimization activerecord