Peut-être rajouter la méthode :print dans ton "before_action" Le 22 novembre 2016 à 13:59, ziburudebian <devmap...@gmail.com> 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. > -- Grégory Frerot ------------------------------------------ Webdesigner / UI Designer @ Effigy sprl -- -- 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 .