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
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. [email protected]
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. [email protected]
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”
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 ^^
Ici :
les sources : Full Episode Source Code
Le 29 avr. 09 à 12:56, Sebastien P. a écrit :