Ouverture de session

Commentaires récents

Syndication
Flux XML

Personnaliser les "exceptions" des URL RESTful [Résolu]

Personnaliser les "exceptions" des URL RESTful [Résolu]
Posté par jlecour le Vendredi, 24 Novembre, 2006 - 3:10pm. Divers

Bonjour à tous,

On découvre les plaisir du développement RESTful. Il y a quand même un truc que je comprends pas : comment personnaliser les appels de méthodes dans les URL ?

Lorsqu'on souhaite éditer un enregistrement (genre :products), dans la vue on peut utiliser ceci :
edit_product_path(@product)

Dans mon contrôlleur, j'ai bien une méthode edit mais si je la change pour modifier, le système marche encore alors qu'il n'y a plus de méthode "edit". Je me dis que Rails est super fort etcomme la vue "edit.rhtml" existe il me rend bien le formulaire (mais vide, c'est normal)
Si je renomme ma vue, plus rien ne marche, c'est logique.

Si je renomme l'appel de la méthode dans la vue d'origine en modifier_product_path(@product), j'ai une erreur de méthode inexistante.

Je me demande donc comment on peut personnaliser tout ça. Je me doute que c'est dans route.rb que ça se passe, mais je ne trouve la syntaxe et l'organisation des paramètres.



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Élément de résolution
Auteur: 
jlecour
Date: 
Ven, 24/11/2006 - 15:31

En plongeant dans le code source de Rails, j'ai trouvé que ça peut marcher comme ça :
map.resources :products, :member => { :modifier => :any }

J'ai cru comprendre que :member se rapporte à un objet product et :any se rapporte au type de requête (":get", ":post", ":put", ":delete" ou ":any" pour n'importe laquelle).

Du coup, si dans une vue je donne modifier_product_path(product), j'obtiendrai /products/3;modifier où 3 est l'id du produit en cours.

Les références de code source : http://dev.rubyonrails.org/browser/trunk/actionpack/lib/action_controller/resources.rb#L69 (Lignes 69 à 206)


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Qui est en ligne
Il y a actuellement 1 utilisateur et 25 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Propulsé par Drupal ]