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您不会显示使用序列化插件的代码或错误的完整回溯,并且在没有该信息的情况下很难提供有用的帮助。 –