Salut !
Je me mets au 100% REST (faut bien essayer). Assez rapidement j’ai qques
soucis, et je me perds un peu entre Rails 1.2.x et Rails 2.0
J’utilise Rails 1.2.5. Mon appli d’exercice est une gestion du bordel de
mon
garage : des pièces détachées informatique.
Pour l’instant c’est simplissime, j’ai :
class Piece < AR
belongs_to :type
end
class Type <AR
has_many :pieces
end
Le type c’est “Processeur”, “Disque dur”, “Carte mère” etc…
Avec un generate scaffold_resource j’ai pu mettre en place les 2
classes,
j’ai rajouté la relation, pas de pb.
Maintenant je voudrais une page par exemple qui liste les processeurs
(disons les pièces telles que type_id==1)
1°)Quelle est l’URL REST pour une telle requete ?
=> il me semble que ce doit etre qqchose comme
http://site.com/types/1/pieces
2°)Quelle route rajouter ?
=> j’ai cru comprendre que ceci ferait l’affaire, mais ce n’est pas le
cas :
map.resources :types do |types|
types.resources :pieces
end
3°)Quel helper generera l’URL ?
=> encore une fois, j’ai cru comprendre que c’était
pieces_path(Type.find(1))…
mais caramba ! encore râté !!!
Merci bcp !!!
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/
Bienvenue au club Retsful
1
OK
2
map.resources :types do |types |
types.resources :pieces , :controller =>‘types/pieces’
end
Ce qui suppose une arborescence de controllers “types/pieces”
et un controller :
Types::PiecesControllers < ApplicationController
Après là où ça va se gâter c’est quand les controleurs vont se
multiplier.
If faut absolument les générer par métaprogrammation sinon c’est
l’horreur.
Il existe des plugins, je m’en suis aussi dévelloppé un à ma convenance
qui
coucre 80% des cas. Il est pas encore documenté mais dispo (SVN) à la
demande.
J’ai l’impression que le Restful travaille pas mal de monde en ce moment
:
Comment aller plus loin qu’un CRUD naïf ?
Après avoir pas mal pataugé là dessus, j’ai un méthodologie qui émerge
et
semble tenir la route (matérialisée par un plugin).
Je vais tâcher de pondre rapidement un article là -dessus pour voir où en
sont les-uns-les-autres à propos de Restful…
@+
Philippe.
map.resources :types do |types |
types.resources :pieces , :controller =>‘types/pieces’
end
Ce qui suppose une arborescence de controllers “types/pieces”
et un controller :
Types::PiecesControllers < ApplicationController
Bon bin très honnetement, je ne suis pas arrivé à faire ce que tu
préconise. J’en suis arrivé par contre sur une version simplifiée, ou je
ne
fais pas de controleur dédié :
dans routes.rb :
map.resources :types do |types |
types.resources :pieces
end
dans mon controleur pieces, pour l’action index, j’ai changé “@pieces =
Piece.find(:all)” par :
if (params[:type_id])
@pieces = Piece.find_all_by_type_id(params[:type_id])
else
@pieces = Piece.find(:all)
end
tout marche exactement comme je le voulais.
qu’est-ce que je “risque” en simplifiant de la sorte ? ou est la
limitation
de cette solution ?
en tous cas merci bcp de m’avoir mis sur la voie (((-:
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/
Je vais tâcher de pondre rapidement un article là -dessus pour voir où en
sont les-uns-les-autres à propos de Restful…
C’est fait : http://blog.lachaise.org/?p=3