在我们的 Rails 应用程序中有 user
和 user_level
模型。在 user_level
中有一个名为 user_group_id
的字段。关系是user
has_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/