2017-03-15 1 views
0

J'utilise le gem searchkick et je voudrais faire une requête comme celle-ci: Product.where("products.created_at < products.distribution_ended_at") dans la méthode de recherche de searchkickSearchkick quelle est la syntaxe de requête avec DateTime

Voici mon modèle produit

class Product < ActiveRecord::Base 

searchkick word_start: [:name] 

def search_data 
    { 
      name:   name, 
      content:  content, 
      amount:   amount, 
      created_at:  created_at, 
      distribution_ended_at: distribution_ended_at 
    } 


    end 


end 

Voici mes produits contrôleur

class ProductsController < ApplicationController 

     def index 

      @products = Product.all 

      search_conditions = { 
       created_at: {lt: distribution_ended_at} 
       } 

      sort_conditions =[] 

     aggregations = {} 

     @product = Product.new 
     @products = Product.search("*", aggs: aggregations, where: search_conditions, 
      page: params[:page], per_page: 20, match: :word_start, order: sort_conditions) 

     end 
end 

Mais la chose est, qui ne trouve pas distribution_ended_at

Quelqu'un a une idée comment écrire cette requête dans les conditions de recherche de Searchkick?

Merci

Répondre

0

Le distribution_ended_at pourrait égaler à nil. Essayez:

search_conditions = { 
    created_at: { lt: params[:distribution_ended_at] } 
}