Bonjour, Merci pour vos réponses..... en fait j'étais allé un peu vite en besogne....
Le PDF doit etre généré apres validation des Items... donc plus de problèmes car basé sur un code_etat bien spécifique.... Merci. On 13 mar, 20:28, Florian Dutey <[email protected]> wrote: > C'est très "php" comme solution. > Pour le "mass action", je travaille avec un select_tag qui permet à > l'utilisateur de choisir l'action qu'il souhaite exécuter sur sa sélection > (ne pas l'appeler "_method" sinon rails va rien comprendre, ni "method" car > ca peut faire bugger ie). > A partir de ceci, tu as 2 solutions: > > => sans JS > > tu testes la valeur du select dans le formulaire (un bon case / when) et tu > appelles des methodes protégées de ton controller en fonction de cette > valeur. > ex: > > case params[:_action] > when 'delete' then mass_delete > when 'pdf' then mass_pdf_print > end > > ca nécessite d'ajouter une route de type collection pour ta resource (du > genre 'mass_operation') et ton form pointera évidemment dessus. Il n'y a > pas de verbe http idéal, utilise PUT, c'est le moins illogique. > > => avec js > > tu crées une route par action disponible sur la collection (genre: > 'mass_delete', 'mass_pdf' ...) > tu mets un attribut du style "data-action" sur chacun des tags options de > ton select. Cet attribut contient l'url de la route correspondant à l'action > > et tu changes l'action du formulaire en js en fonction de l'action choisie. > > Ex de js pas très propre (avec jQuery): > > $('form.mass_action).submit(function(event){ > var self = $(this); > > self.attr('action', self.find('select[name=_action] > option:selected').data('action')); > > event.preventDefault(); > event.stopPropagation(); > > form..get(0).submit(); > //note, le get(0) renvoie l'élément HTML et non un objet jquery > //appeler submit() sur un element HTML ne déclenche pas l'évènement > submit jquery > > }); > > Dans tous les cas, tu ne dois pas utiliser respond_to. Le format de ta > requete est "html", pas "pdf". Rails ne devine pas magiquement que tu veux > du pdf. Comme tu fais un send_data, on se fout que la requete rende du pdf > alors que son format est html. > > En espérant t'aider > > Le 12 mars 2012 19:22, Guirec Corbel <[email protected]> a écrit : > > > > > > > > > Bonjour, > > > As tu essayé cette solution : > >http://www.journaldunet.com/developpeur/client-web/tutoriel-pratique/... > > > Le 12 mars 2012 13:22, Emmanuel BOUGEROLLE <[email protected]> a > > écrit : > > > Bonjour, > > >> J'ai un peu du mal a trouver la methode pour faire ceci : > > >> Une table html encapsulée par un form_tag contenant pour chaque ligne > >> un checkbox_tag permettant de sélectionner plusieurs lignes. > > >> Pour chaque lignes sélectionnées, je souhaites pouvoir effectuer deux > >> actions. > > >> Rendre un pdf des lignes sélectionnées (réalisé avec prawn), > >> déclencher une mise à jour ne masse des lignes sélectionnées. > > >> Hors mon formulaire ne peux contenir qu'une action. > > >> J'ai bien tenté de jouer sur deux submit et de tester la valeur comme > >> ceci ma : > > >> if params[:commit] == "print" > >> # déclenchement de ma vue prawn > >> respond_to do |format| > >> format.pdf do > >> pdf = AidePdf.new(@aide, view_context) > >> send_data pdf.render, filename: "aides.pdf", > >> type: "application/pdf", > >> disposition: "inline" > >> end > >> else > >> # Mise à jour des éléments avec update_all > >> end > > >> Je bloque je le rendu de la vue prawn puisque que mon action du > >> formulaire sur le submit ne détermine pas le format. > > >> Merci d'avance pour votre aide... > > >> -- > >> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" > >> de Google Groups. > >> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > >> [email protected] > >> Pour résilier votre abonnement envoyez un e-mail à l'adresse > >> [email protected] > > > -- > > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > > Google Groups. > > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > > [email protected] > > Pour résilier votre abonnement envoyez un e-mail à l'adresse > > [email protected] -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
