我正在寻找一种从活动记录关系中获取ID数组的简单/快速方法.

目前我有:

product_ids = Product.select(:id).where(:colour => 'blue').all.map{|p|p.id}

但这很混乱,需要一张 map ..

像这样的东西会更酷:

product_ids = Product.where(:colour => 'blue').ids

有什么 idea 吗?

谢谢:)

推荐答案

更简洁的解决方案:

Product.where(:colour => 'blue').pluck(:id)

在Rails的最新版本中,可以使用ids方法.

Product.where(color: 'blue').ids

Ruby-on-rails相关问答推荐

Ruby on rails Admin-有没有一种方法可以在成对的管理控制器类中合并、重用应用程序控制器类?

Grape api (rails) - 未初始化常量 Endpoints::TodoAPI (NameError)

插件和 Ruby gem 之间的区别?

Ruby Sinatra Web 服务在 localhost:4567 上运行,但不在 IP 上

控制器规格与请求规格?

模型验证中的 Rails 国际化 (I18n):可能与否?

在 Rails 中,如何处理多个选中的复选框,只需拆分 , 或?

了解 Rails 验证:allow_blank 有什么作用?

Heroku 错误 R14(超出内存配额):我该如何解决?

使用回形针调整图像大小

Rails,获取模型中的资源路径

Rails 3.1 在开发模式下非常慢,因为assets资源 ,怎么办?

不允许请求来源:使用 Rails5 和 ActionCable 时的 http://localhost:3001

rails structure.sql和schema.rb有什么区别

在 Ruby on Rails 中循环对象属性

Groovy/Grails :: Ruby/Rails :: 2011 框架状态

Ruby on Rails 基本概念总结

如何在rails中正确使用单选按钮?

如何在 Rails 迁移中判断数据库类型?

Ruby 1.9.2 和 Rails 3 无法打开 rails 控制台