小编use*_*001的帖子

续集 - 查询多对多关联

我在为以下场景构建正确的模型、关联和查询时遇到问题,然后使用 Sequel 和 Ruby 将结果作为 JSON 返回。

数据库结构___

您可以创建书籍列表。每个图书馆都有书。由以下定义:

db.create_table(:books) do
  primary_key :id
  String :name
  String :author
  DateTime :created
end

db.create_table(:libraries) do
  primary_key :id
  String :name
  String :city
  String :state
  DateTime :created
end

db.create_table(:libraries_books) do
  Integer :library_id
  Integer :book_id
  primary_key [:library_id, :book_id]
end


class Library < Sequel::Model(:libraries)

  many_to_many :libraries_books, :left_key=>:library_id, :right_key=>:book_id, :join_table=>:libraries_books
  one_to_many  :libraries_books, :key=>:library_id

end

class LibraryBook < Sequel::Model(:libraries_books)

  many_to_one  :libraries
  many_to_one  :books

end
Run Code Online (Sandbox Code Playgroud)

我正在尝试确定访问给定图书馆所有书名的正确方法。我最初尝试遵循 Sequel Associations 指南,但无法弄清楚如何使用带有关联的 LibraryBook 来获取图书馆的所有书籍并加入 Book 模型以获取正确的列。

在使用了所描述的一些方法之后,我尝试创建自己的查询:

LibraryBook.select(:books.*)
           .join_table(:inner, :libraries, :id => :library_id) …
Run Code Online (Sandbox Code Playgroud)

ruby json associations sequel

2
推荐指数
1
解决办法
2539
查看次数

标签 统计

associations ×1

json ×1

ruby ×1

sequel ×1