Ruby 如何从联接中获取嵌套哈希?
我正在使用Sequel从SQLite数据库中读取行。不需要写东西 我使用的是基本联接。考虑这一点:Ruby 如何从联接中获取嵌套哈希?,ruby,sqlite,sequel,Ruby,Sqlite,Sequel,我正在使用Sequel从SQLite数据库中读取行。不需要写东西 我使用的是基本联接。考虑这一点: db = Sequel.sqlite db[:user].join_table(:left, :photos, user_id: :user_id) 这将连接用户表上的照片表(保留没有照片的用户) 但是,这会将用户的所有行数乘以其照片数: [ {user_id: 1, name: 'User1', photo_id: 1, photo_name: 'profile.jpg'} {user
db = Sequel.sqlite
db[:user].join_table(:left, :photos, user_id: :user_id)
这将连接用户表上的照片表(保留没有照片的用户)
但是,这会将用户的所有行数乘以其照片数:
[
{user_id: 1, name: 'User1', photo_id: 1, photo_name: 'profile.jpg'}
{user_id: 1, name: 'User1', photo_id: 2, photo_name: 'cat.jpg'}
{user_id: 1, name: 'User1', photo_id: 3, photo_name: 'dog.jpg'}
{user_id: 2, name: 'User2', photo_id: 4, photo_name: 'profile.jpg'}
{user_id: 2, name: 'User2', photo_id: 5, photo_name: 'profile.jpg'}
{user_id: 3, name: 'User3', photo_id: nil, photo_name: nil}
]
我希望将所有照片属性嵌套在一个键下,如下所示:
[
{user_id: 1, name: 'User1', photos: [{photo_id: 1, photo_name: 'profile.jpg'}, {photo_id: 2, photo_name: 'cat.jpg'}, {photo_id: 3, photo_name: 'dog.jpg'}]}
{user_id: 2, name: 'User2', photos: [{photo_id: 4, photo_name: 'profile.jpg'}, {photo_id: 5, photo_name: 'profile.jpg'}]},
{user_id: 3, name: 'User3', photos: [] }
]
我如何才能实现这种“迷你关系”?我必须指定一个模型吗