1) tu veux imprimer quoi? /clients? C'est un listing? 2) Pourquoi creer une nouvelle route pour ca? Tu peux le gerer en ajoutant le format .pdf a ton index. /clients => html, /clients.pdf => la meme en pdf.
Maintenant regarde bien ton log Rails ActionController::RoutingError (No route matches [POST] "/clients/print") Pour une raison qui m'echappe (et je chercherai pas a savoir, je vomis les vues html en rails), ta vue soumet la requete en POST alors que ta route est en GET. Donc, corrige ta vue et tout ira bien <%= button_to 'print', print_clients_path, method: :get %>. Ou mieux <%= button_to 'print', clients_path(format: :pdf), method: :get %> Bye 2016-11-23 23:34 GMT+08:00 ziburudebian <devmap...@gmail.com>: > effectivement j'avais oublie le s de ressource mais cela ne fonctionne > toujours pas > le print, je l'ai pas encore code, j'ai mis pour l'instant un redirect_to; > le but futur (mais ce n'est pas là le sujet) consistera à envoyer dans un > pdf avec whhtmltopdf la page web > > ce que j'aimerai bien comprendre (avant de lire.. le doc des routes...) > c'est pourquoi http://localhost:3000/clients/print ne fonctionne pas > alors qu'il est dans la route !!! > > Le mardi 22 novembre 2016 13:59:29 UTC+1, ziburudebian a écrit : > >> bonjour à tous >> >> j'ai un *model/controller/vue* nommé clients qui fait classiquement >> edit, show, update >> >> dans *app/controllers/clients_controller.rb* j'ai ce début de code >> >> class ClientsController < ApplicationController >> >> before_action :set_client, only: [:show, :edit, :update, :destroy] >> >> respond_to :html >> >> def index >> @clients = Client.all >> respond_with(@clients) >> end >> >> def show >> respond_with(@client) >> end >> >> def print >> >> end >> >> ...... >> >> >> dans ma vue j'ai ceci : >> >> div.milieu >> table border="1" >> thead >> tr >> th "IDENT" >> th "NOM" >> tbody >> - clients.each do |client| >> tr >> td = client.ident >> td = client.lastname >> br >> div.action >> table >> tr >> td >> = button_to "new", url_for([:new, :"client"]), :method => "get" >> td >> = button_to "print", url_for([:print, :"clients"]), :method => "get" >> >> >> je souhaite rajouter une méthode *print *et donc dans ma route j'ai >> rajouté >> >> resource :clients do >> get "print" >> end >> >> >> ainsi qu'une méthode dans mon controller (cf plus haut) et une vue >> *print.html.slim* >> >> lorsque rails charge ma vue les deux boutons *new *et *print* >> s'affichent correctement mais quand je clique sur *print *j'ai une >> erreur ; voici la log : >> >> I, [2016-11-22T13:45:20.972040 #20643] INFO -- : Started GET "/clients" >> for 92.103.19.65 at 2016-11-22 13:45:20 +0100 >> I, [2016-11-22T13:45:21.037813 #20643] INFO -- : Processing by >> ClientsController#index as HTML >> I, [2016-11-22T13:45:21.268393 #20643] INFO -- : Rendered >> clients/index.html.slim within layouts/application (205.5ms) >> I, [2016-11-22T13:45:21.276660 #20643] INFO -- : Rendered >> tpl/_header.html.slim (5.6ms) >> I, [2016-11-22T13:45:21.350503 #20643] INFO -- : Rendered >> tpl/_menu.html.slim (73.1ms) >> I, [2016-11-22T13:45:21.460437 #20643] INFO -- : Rendered >> tpl/_footer.html.slim (108.3ms) >> I, [2016-11-22T13:45:21.460910 #20643] INFO -- : Completed 200 OK in >> 423ms (Views: 387.4ms | ActiveRecord: 14.7ms) >> I, [2016-11-22T13:45:24.046331 #20643] INFO -- : Started GET >> "/clients/print" for 92.103.19.65 at 2016-11-22 13:45:24 +0100 >> I, [2016-11-22T13:45:24.053057 #20643] INFO -- : Processing by >> ClientsController#show as HTML >> I, [2016-11-22T13:45:24.053158 #20643] INFO -- : Parameters: >> {"id"=>"print"} >> I, [2016-11-22T13:45:24.058554 #20643] INFO -- : Completed 404 Not Found >> in 5ms >> F, [2016-11-22T13:45:24.060876 #20643] FATAL -- : >> ActiveRecord::RecordNotFound (Couldn't find Client with 'id'=print): >> app/controllers/clients_controller.rb:130:in `set_client' >> >> >> on dirait qu'il charge le show alors que je lui demande le print >> >> Merci 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 > railsfrance@googlegroups.com > Pour résilier votre abonnement envoyez un e-mail à l'adresse > railsfrance-unsubscr...@googlegroups.com > --- > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes > "Railsfrance". > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail à l'adresse railsfrance+unsubscribe@ > googlegroups.com. > Pour obtenir davantage d'options, consultez la page > https://groups.google.com/d/optout. > -- -- 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 railsfrance@googlegroups.com Pour résilier votre abonnement envoyez un e-mail à l'adresse railsfrance-unsubscr...@googlegroups.com --- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance. Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com. Pour plus d'options, visitez le site https://groups.google.com/d/optout .