这是我的模型设置:
Book
:一本书List
:《纽约时报》认为,这是畅销书“品牌”
畅销书。列表可以是featured
(布尔列)。ListEdition
:此类畅销书的年度版本;即为
给定List
,将有2016、2017、2018,...个版本(存储在
year
列)BookRank
:将Books
与ListEditions
连接起来,并存储rank_world
和rank_europe
(两者均为整数,后者表示相对于其他{{1 }}(来自欧洲)Books
(即使从我在此处发布的内容中看不出来,也有理由为什么class Book < ActiveRecord::Base
has_many :book_ranks, dependent: :destroy
end
class List < ActiveRecord::Base
has_many :list_editions, dependent: :destroy
end
class ListEdition < ActiveRecord::Base
belongs_to :list
has_many :book_ranks, dependent: :destroy
end
class BookRank < ActiveRecord::Base
belongs_to :book
belongs_to :list_edition
has_one :list, through: :list_edition
end
和List
是两个单独的模型。)
我要获取的是一个表格(哈希表),其中包含分别包含在最新的特色列表ListEditions中的所有书籍,以及每个ListEdition中各自的rank_world和rank_europe。
最新的内容取决于ListEdition
,因为它们具有不同的发布周期。例如。我可能有一个列表的2018 List
,但另一个列表的2017 ListEdition
,通过查询,我想在两个{{1} }。
关于如何进行此类查询的任何想法?
我意识到这将是一个相当复杂的数据库查询。第一步,只是列出所有ListEdition
的列表。
谢谢!