Hello,
je crois que quand tu déclares tes routes comme ça, ça te génère une route
de ce type:
/clients/*[client_id]*/print
si tu veux quelque chose comme clients/print essaie :
get "clients/print", to: 'clients#print', as: "print_clients"
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
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
---
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 [email protected].
Pour plus d'options, visitez le site https://groups.google.com/d/optout .