ruby - 如何为 ruby​​ 哈希中的特定键创建值数组?

标签 ruby dictionary

在我们的 Rails 应用程序中有 useruser_level 模型。在 user_level 中有一个名为 user_group_id 的字段。关系是userhas_manyuser_levels。我们想为给定的 user_id 生成一个 user_group_id 数组(在 user_level 中)。

对于给定的 user_id,其 user_levels 可以检索为:

u = User.find(user_id)
ul = u.user_levels

一个用户可能有多个user_levels。如何使用 ruby​​ map(或其他一些 ruby​​ 方法(最好是 ruby​​))从 ul 创建一个 user_group_id 数组?谢谢。

最佳答案

试试这个,

user = User.find(user_id)
user.user_levels.pluck(:user_group_id)

或者这个,

user.user_levels.map(&:user_group_id)

第一个进行单独的数据库查询,只选择 :user_group_id。例如,在 MySQL 中它会调用 SELECT user_levels.user_group_id ...

第二个从获取的 user_levels 中收集 :user_group_id

关于ruby - 如何为 ruby​​ 哈希中的特定键创建值数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349929/

相关文章:

嵌套 map 中的java迭代器(Map 2D)

ruby - 如何获取传递给 factory_girl 方法的特征列表?

java - 如何先按值对 HashMap 进行排序,然后在重复的情况下按键对 HashMap 进行排序?

ruby-on-rails - 尽管使用 `gem install...` 命令进行安装,但 mysql2 gem 在捆绑安装时失败

ruby-on-rails - Ruby 数组转换为带括号的字符串

python - 将 Pandas 数据框转换为 N 对 1 字典,其中 N 列是指向单个列的键作为值

dictionary - Haskell:使用 Data.Map.elems 的函数

python - 定义一个字典,其名称已作为字符串存储在脚本中

ruby-on-rails - 每个数组对象的 RoR 范围

Ruby 2.0 - 将整数舍入到最接近的 10 的倍数