2012-12-12 19 views
5

Sto cercando di eseguire una ricerca, ordinare i risultati in modo casuale e restituire solo un numero di risultati, non tutti i risultati. Qualcosa di simile limite (2) Ho provato con il 'file' Solr param, ma che non sembra di fare nulla:rotaie ricerca limite ricerca totale risultati/ottenere un numero fisso di risultati

@featured_articles = Article.search do 
    with(:is_featured, true) 
    order_by :random 
    adjust_solr_params do |params| 
    params[:rows] = 2 
    end 
end 

@ featured_articles.total dovrebbe essere 2, ma restituisce più di 2

Come posso ottenere un numero fisso casuale di risultati?

risposta

0

Tutti esempio rubino ..

@featured_articles = Article.search do 
    with(:is_featured, true) 
    order_by :random 
end.shuffle.take(2) 

Se non avete bisogno di Solr, a seconda sul tuo db, potresti anche fare: Article.where(is_featured: true).order("RANDOM()").limit(2)

Problemi correlati