Je m'excuse si c'est une question triviale ou si ma compréhension des rails est faible.will_paginate sans utilisation de activerecord
J'ai 2 actions dans mon contrôleur, index et refine_data.
index récupère et affiche toutes les données d'une table de base de données. Refine_data supprime les données indésirables en utilisant regex et retourne un sous-ensemble des données.
Controller ressemble:
def index
Result.paginate :per_page => 5, :page => params[:page], :order => 'created_at DESC'
end
def refine_data
results = Result.all
new_results = get_subset(results)
redirect_to :action => 'index'
end
Je voudrais rediriger l'action refine_data à la même vue (index) avec new_results. Comme les nouveaux résultats ne proviennent pas de la table (ou du modèle) de la base de données, comment puis-je construire mon paginate?
Veger, merci pour les suggestions. J'ai placé le find_refined_data (search_string, page) dans mon modèle. j'ai ajouté la ligne suivante à mon action contrôleur refine_data Result.paginate_refined_data params [: exclude], params [: page] Cependant, je vois le « hachage de paramètre attendu » d'erreur Je suppose que paginate_refined_data a besoin des paramètres supplémentaires. Je ne suis pas sûr de qui. J'ai également besoin de transmettre la chaîne de recherche à mon modèle depuis le contrôleur en plus des paramètres will_paginate. Merci beaucoup pour votre aide – truthSeekr
La méthode 'find' (et donc la vôtre aussi) nécessite un argument (voir http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002263). C'est une liste de hachage à partir de laquelle vous pouvez soustraire les options en utilisant 'extract_options!' Ou quelque chose de similaire, de sorte que vous pouvez les utiliser pour votre propre code. – Veger