Rails ecommerce プロジェクトで Searchkick を使用しています。ユーザーは商品リストを検索できます。
特定の商品がサイトに表示されない状況があります (たとえば、在庫 = 0 の場合など)。
searchkick docs に基づいて、コントローラーに検索メソッドを として持っています@listings = Listing.search(params[:search])
。これは意図したとおりに機能します。
私のリスティング モデルでは、どのリスティングを表示してもよいかを定義する以下のメソッドがあります。
class Listing < ActiveRecord::Base
scope :listable, -> {
joins("INNER JOIN users
ON users.id = listings.user_id
AND users.hidelistings = 'f'") }
def self.not_expired
listable.where('(listings.updated_at >= ? or user_id = ?) and inventory > ?', Date.current - 30.day, 24, 0)
end
上記に基づいて、サーチキックメソッドに言ってもらいたいのです@listings = Listing.not_expired.search(params[:search])
が、これは機能しません。基準を満たす結果のみを表示するように searchkick に指示するにはどうすればよいですか?