【问题标题】:Convert array of ids to array of attributes in Ruby on rails将 id 数组转换为 Ruby on rails 中的属性数组
【发布时间】:2018-02-26 10:06:35
【问题描述】:

我有一个 id 数组:[111839, 111803, 111774, ...]。如何将其转换为对应于 id 的模型属性值的数组,例如 [Jack, John, Sarah, ...]

【问题讨论】:

  • 什么是类?属性是什么?

标签: ruby-on-rails activerecord


【解决方案1】:
Person.where(id: array_ids)

这为您提供了一组人,如果您只想要一些属性,请使用 pluck 并获得一个数组(如果有多个属性,则为数组数组)

Person.where(id: array_ids).pluck(:name)

【讨论】:

  • 将发布相同的解决方案。可悲的是,这不会维持秩序
  • 如果你想订购它们,你可以使用order 方法。反正没人谈论秩序。
  • 如果 id 不按顺序,则不能使用 order [10, 5, 7, 3] 现在如果您想要相应 id 的名称,这种方法将无济于事。
  • 不要误会我的意思,我不是在为答案的正确性而战,我只是警告可能出现的问题
  • 我明白了。不知道这里的顺序是否重要。在那种情况下可能会更好pluck(:id, :name)
猜你喜欢
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 2013-09-16
  • 2017-09-12
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多