1
我遇到的問題是爲以下情形構建適當的模型,關聯和查詢,然後將結果作爲使用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
我想確定訪問給定庫的所有書名的正確方法。我最初嘗試遵循續集關聯指南,但無法弄清楚如何使用LibraryBook和關聯來獲取圖書館的所有書籍,並加入Book模型以獲取適當的列。
卡住的一些描述的方法後,我試圖創建自己的查詢作爲這樣的:
LibraryBook.select(:books.*)
.join_table(:inner, :libraries, :id => :library_id)
.join_table(:inner, :books, :id => :book_id)
.where(:library_id => 1)
這似乎讓我有一部分。然而,當我使用的系列化延伸,我得到一個錯誤時,結果被轉換:
undefined method `book_id' for #<LibraryGame:0x007fa9e904b470>
任何深入瞭解,可以提供將是非常有益!
Yo您不會顯示使用序列化插件的代碼或錯誤的完整回溯,並且在沒有該信息的情況下很難提供有用的幫助。 –