2013-09-02 4 views
0

Après avoir passé la deuxième moitié de ma journée sur ce, j'ai juste besoin de quelques yeux frais. Obtenir cette erreur lors trying to set a default tri pour mon contrôleur d'index à l'aide Ransack et je ne sais pas pourquoiRansack tri personnalisé par défaut

undefined method `split' for #<Post:0x007fabedac69a8> 

Voici mon contrôleur

class PostsController < ApplicationController 
    def index 
    @search = Post.search(params[:q]) 
    @search.sorts = Post.find_with_reputation(:votes,:all, order: "votes desc") if @search.sorts.empty? 
    @posts = @search.results 
    end 
end 

Utilisation de la réputation d'enregistrement actif et que vous souhaitez la charge par défaut pour le tri le plus élevé votes comme vous pouvez le voir. Peut-être y a-t-il un meilleur moyen de faire en sorte que la page soit chargée de trier les votes et de permettre la recherche de saccage? Bien confus pour le moment.

+0

'@ search.sorts' quel est-il? –

+0

'find_with_reputation' où il est écrit pouvez-vous le poster s'il vous plaît? –

Répondre

2

Au lieu de @ search.sort essayez de l'affecter à une autre variable. Aussi au lieu de résultats utilisent résultat

class PostsController < ApplicationController 
    def index 
    @search = Post.search(params[:q]) 
    @search_r = Post.find_with_reputation(:votes,:all, order: "votes desc") if @search.sorts.empty? 
    @posts = @search_r.result 
    end 
end 
+0

thumbs up .... ... –