[英]Searchlogic on associations
我有以下關聯:
class BookShelf {
has_many :books
}
class Book {
has_many :pages
belongs_to :book_shelf
}
class Page {
belongs_to :book
}
如果我有BookShelf對象,如何使用searchlogic搜索屬於當前書架中書籍的頁面?
目前,我正在使用這個:
@bookshelf = BookShelf.find 1
@pages = Page.title_like("something").book_id_equals(@bookshelf.books.map { |book| book.id }).paginate :page => params[:page]
所以分頁部分只是使用will_paginate,實際上並沒有涉及。
關鍵是我認為這些代碼行有些丑陋。 有什么改進嗎?
這應該可以解決問題,並且不需要將所有書籍ID映射到數組中:
Page.title_like("something").book_bookshelf_id_equals(@bookshelf.id).paginate(:page => params[:page])
我在其中一個應用程序中對其進行了測試,在該應用程序中,我具有以下類似的模型結構(郊區->區域->狀態):
Suburb.name_like("east").region_state_name_like("vi").paginate(:page => 3)
這似乎可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.