2010-10-28 6 views
0

J'utilise Searchlogic dans un modèle avec des dizaines de milliers d'enregistrements et je ne souhaite pas les afficher initialement lors du premier chargement de la page de recherche. Comment puis-je obtenir un objet de recherche vide de searchlogic s'il n'y a pas de: search params?Comment initialiser searchlogic sans initialisation

 
    def search 
    @products = [] 
    if params[:search] && !params[:search].blank? 
     @search = Product.searchlogic(params[:search]) 
    else 
     @search = Product.searchlogic(....What goes here to get an empty searchlogic object?...) 
    end 
    @products = @search.all 
    end 

Répondre

1

Changer votre logique à ceci:

def search 
    @products = [] 
    @search = params[:search] && !params[:search].blank? ? 
     Product.searchlogic(params[:search]) : nil 
    @products = @search.all unless @search.nil? 
end 

Accordée vous pouvez garder votre instruction if comme ceci:

def search 
    @products = [] 
    @search = nil 
    if params[:search] && !params[:search].blank? 
     Product.searchlogic(params[:search]) 
    end 
    @products = @search.all unless @search.nil? 
end 
+0

Merci beaucoup. Cela a bien fonctionné. –

+0

Aucun problème, heureux d'aider. – mway