Rails:通过查询/转换获取对象ID数组(用于比较)

cbr*_*lak 2 database optimization ruby-on-rails

基本上,我想从数据库中获取一组id.

一些背景:

  • 我正在用一个复选框向用户呈现一个objets(foos)列表.
  • 如果用户选中该框,则在另一个表(bar)中创建一行
  • 当渲染foo列表+复选框时,我想检查bar id数组中是否存在任何给定foo的唯一id.

我假设在使用复选框呈现foo列表时,获取一组id会比为每个foo实例查询数据库更有效.

想法?如果不清楚,请提前道歉.

Jyo*_*thu 13

我们也可以这样使用map方法

Model.all.map(&:field_name)
Run Code Online (Sandbox Code Playgroud)


cbr*_*lak 7

我使用了map方法:

@bars = Bar.all(:select => bar.id)
@bars = @bars.map{|bar| bar.id}
Run Code Online (Sandbox Code Playgroud)

然后我最终得到了一堆id.而且只有一个查询.


小智 5

最新版本的Rails支持 Model.pluck(:field_name)