Conseil sur factorisation de vue (helper?)

Bonjour,

J’avance sur mon projet rails (lentement mais j’ai un métier
à côtéqui me prend du temps) et je me pose une question pour factoriser des
vues.

Tout d’abord un petit rappel du contexte :
Je développe un site de recettes de cuisine et donc j’ai plusieurs
fonction de recherche (par nom, par ingrédient, …) qui toutes
doivent afficher une liste de résultat paginée.
Ma vue liste est actuellement composée de 2 parties.
1- la liste des recettes à afficher (10 par page)
2- la gestion de la pagination

Je voudrais pouvoir réutiliser cette vue pour chacune de mes
recherches sachant que

  • dans la partie 1 le titre de la liste et les paramères de recherche
    sont variables mais je peux les gérer facilement dans une variable
    globale

  • dans la partie 2 la fonction de recherche (:action) à appeler varie
    ainsi que la variable et son contenu (“search” et “:search_rec =>
    @params[:search_rec]” dans l’extrait ci-dessous)
    <%= link_to_remote “►”, :url => {:action =>
    “search”, :params => {:search_rec =>
    @params[:search_rec], :current_page => @recettes.next_page}} %>

Ma question est donc quelle est la meilleure façon de faire pour
pouvoir utiliser cette vue quelque soit la recherche à l’origine

  • gérer des variables globales que j’initialise avant l’appel de la
    vue?
  • passer par un helper, mais dans ce cas je ne suis pas sur de savoir
    comment faire?

J’espère que je suis clair et merci de votre aide.

Pour ceux qui voudraient se rendre compte de ce à quoi ça ressemble,
vous pouvez jeter un coup d’oeil sur http://cvouslechef.alwaysdata.net
(attention, c’est une version très alpha non finie et avec un jeu de
test parfois incohérent et un pb sur certains caractère car j’ai fait
une reprise de données très rapide)

Helper est une solution qui marche. Je gére une variable origine que
je positionne au niveau de de méthode de recherche et que je passe à
mon helper dans la pagination.

Par contre j’ai un petit problème.
Pour une de mes recherches j’utilise l’autocompletion
(:ingredient :name) mais je ne sais pas quel nom employer pour
l’affecter (le xxx ci-dessous)

{:xxxxx => @params[:ingredient][:name],

Si quelqu’un pouvait m’aider?

Merci

Je me répond à moi-même.
Il faut que je fasse quelques tests suppélemntaires pour vérifier que
j’obtiens les bon resultats mais après plusieurs essais il semble que
mettre entre quote le nom de la variable fonctionne.
{“ingredient[name]” => @params[:ingredient][:name],

Ceci dit je ne comprends pas pourquoi ça marche et je trouve
ça plutôtembêtant …

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs