Forum: Rails France Problème de débutant RoR

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Sebastien P. (Guest)
on 2009-04-29 14:08
Bonjour à tous,

Je vous expose mon problème: J'ai dans un controller "clients" une
méthode show qui contient une variable @client correspondant à l'id du
client choisi.
Cette méthode appelle un autre controller "sites" dans lequel je
voudrais utiliser la variable @client pour pouvoir lister les sites du
client choisi.

Je suppose que cela est possible mais je n'y parviens pas...

Quelqu'un pourrait il me mettre sur la voie?

Sébastien
guillaume belleguic (Guest)
on 2009-04-29 14:17
(Received via mailing list)
Un controller qui appelle un autre controller ???
tu parle d'un redirect_to, si c'est le cas il faut que tu t'arrange pour
recréer cette variable dans le controller sites.
avec par example des routes :

map.resources :users, :has_many => :sites

donc des urls comme suit /users/1/sites

et donc dans le controller site tu retrouve params[:user_id] et donc
@user =
User.find(params[:user_id])

2009/4/29 Sebastien P. <removed_email_address@domain.invalid>
Sebastien P. (Guest)
on 2009-04-29 14:34
guillaume belleguic wrote:
> Un controller qui appelle un autre controller ???
> tu parle d'un redirect_to, si c'est le cas il faut que tu t'arrange pour
> recréer cette variable dans le controller sites.
> avec par example des routes :
>
> map.resources :users, :has_many => :sites
>
> donc des urls comme suit /users/1/sites
>
> et donc dans le controller site tu retrouve params[:user_id] et donc
> @user =
> User.find(params[:user_id])
>
> 2009/4/29 Sebastien P. <removed_email_address@domain.invalid>

Oui, j'utilise un redirect_to(sites_url). j'ai rajouté la route
suivante:
"map.ressources :clients, has_many => :sites" dans mon routes.rb
puis: "@client = Client.find(params[:client_id])" dans la méthode
concernée de mon controller site mais lorsque cette méthode est appelée
je reçois l'erreur suivante: "Couldn't find Client without an ID"
Sebastien P. (Guest)
on 2009-04-29 14:56
Autant pour moi, les url n'étaient pas bonnes...
J'ai donc bien une url du type /clients/numéro/sites mais je ne vois pas
comment ne sélectionner que les sites correspondant au client choisi.
Si quelqu'un avait l'adresse d'un tuto traitant de choses dans ce genre
ce ne serait pas de refus ^^
Guillaume BELLEGUIC (Guest)
on 2009-04-29 15:14
(Received via mailing list)
Ici :
http://railscasts.com/episodes/139-nested-resources

les sources : Full Episode Source Code



Le 29 avr. 09 à 12:56, Sebastien P. a écrit :
This topic is locked and can not be replied to.