簡體   English   中英

Searchlogic關於關聯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM