ruby-on-rails - 如何对数组和表执行内连接
问题描述
我有一个哈希数组,它存储来自 api 的数据。我怎样才能inner join
用桌子在它上面表演。
> posts
[{ uuid: 'post1', user_uuid: 'user1' },
{ uuid: 'post2', user_uuid: 'user2' }]
> User.all
#<ActiveRecord::Relation [#<User id: 1, uuid: "user1", name: "User1">]>
我希望得到一个像
[{ uuid: 'post1', user_uuid: 'user1', user_name: 'User1' }]
user2
表中不存在,因此不会出现在结果数组中。
解决方案
这是您上面的代码示例而不是内部连接,因为另一个表(帖子)不是数据库中的关系表
arr1 = Array.new
users = User.all
users.each do |user|
post = posts.detect { |d| d[:user_uuid] == user.uuid }
# detect will check if here is matching between user and posts content
arr1 << {uuid: post[:uuid], user_uuid: post[:user_uuid], user_name: user.name} if post.present?
end
puts arr1
推荐阅读
- javascript - React 组件没有根据异步调用的响应进行更新
- python - 在多个地方分割字符串Python
- javascript - 如何知道我在 Azure 认知服务语音合成 (TTS) 中使用了多少个字符?
- c# - .net core 3.1 分离模型之间的关系
- node.js - 剧作家拖放
- java - Spring Data JPA 规范 FETCH JOIN 问题
- react-native - 如何使用 Jest 测试 Modal (react-native) 是否可见?
- angular - 订阅和模板离子的问题
- mysql - Maria DB - 为 SQL 事件中的每一行执行存储过程
- python - How do I open an FTP directory so that I can use it the same way I could a normal directory?