3

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 に指示するにはどうすればよいですか?

4

1 に答える 1