Forum: Rails France maper une requête avec des paramètres

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.
31febc6f7b755c65426f41ce74a26480?d=identicon&s=25 Manuel Spuhler (Guest)
on 2009-01-20 22:34
(Received via mailing list)
Bonjour,

je cherche un moyen de maper une requête avec des paramètres:
http://localhost:3000/api/search?keyword=gaza/items/14


Dans mon routes.rb, j'ai

map.namespace :api do |api|
    api.connect 'search', :controller => 'search', :action =>
'index'
    api.connect 'search/items/:item_id', :controller =>
'search', :action => 'show'
end


Rails voit ça comme :keyword => "gaza/items/14" et me renvoie sur
l'index

Je pense que je pourrais faire ça comme ceci:
http://localhost:3000/api/search/items/14?keyword=gaza, mais je suis
attaché à la syntaxe précédente.

Est-ce que c'est possible de faire ça?

Merci

Manu
A99870c1391c39da2089649745965bda?d=identicon&s=25 Jean-François Trân (Guest)
on 2009-01-21 00:20
(Received via mailing list)
Le 20 janvier 2009 22:17, Manuel a écrit :

> 'search', :action => 'show'
> end
>
>
> Rails voit ça comme :keyword => "gaza/items/14" et me renvoie sur
> l'index

keyword=gaza/items/14 est la query string de ta requête et
ton butineur a dû échapper les / en %2F.

Du coup Rails a raison d'envoyer /api/search sur ton action index.

   -- Jean-François.

--
http://twitter.com/underflow_
31febc6f7b755c65426f41ce74a26480?d=identicon&s=25 Manuel Spuhler (Guest)
on 2009-01-21 01:09
(Received via mailing list)
>>
>> Rails voit ça comme :keyword => "gaza/items/14" et me renvoie sur
>> l'index
>
> keyword=gaza/items/14 est la query string de ta requête et
> ton butineur a dû échapper les / en %2F.
>
> Du coup Rails a raison d'envoyer /api/search sur ton action index.

oui, ça ressemble bien à une logique de browser, bon, je vais donc re-
échapper tout ça pour le repasser à ma route.

Merci!

Manu
A99870c1391c39da2089649745965bda?d=identicon&s=25 Jean-François Trân (Guest)
on 2009-01-21 01:15
(Received via mailing list)
Le 21 janvier 2009 01:09, Manuel a écrit :

>>> Rails voit ça comme :keyword => "gaza/items/14" et me renvoie sur
>>> l'index
>>
>> keyword=gaza/items/14 est la query string de ta requête et
>> ton butineur a dû échapper les / en %2F.
>>
>> Du coup Rails a raison d'envoyer /api/search sur ton action index.
>
> oui, ça ressemble bien à une logique de browser,

C'est surtout une logique de RFC.

   -- Jean-François.

--
http://twitter.com/underflow_
5d3f7d8e534a892e3029a3f3b9761de5?d=identicon&s=25 Joël Azemar (Guest)
on 2009-01-21 09:31
(Received via mailing list)
Même si c'est pas beau je pense que :
       map.search '/api/search/items/:item_id', :controller => 'search',
:action => 'show'

avant ta route imbriquée marche.

2009/1/20 Manuel Spuhler <manuel.spuhler@gmail.com>
31febc6f7b755c65426f41ce74a26480?d=identicon&s=25 Manuel Spuhler (Guest)
on 2009-01-21 10:23
(Received via mailing list)
j'ai essayé ça, mais le query string part dès le point
d'interrogation, de
http://localhost:3000/api/search?keyword=gaza/items/5

mouliné dans map.search '/api/search/items/:item_id', :controller =>
'search', :action => 'show'

j'obtiens Parameters: {"keyword"=>"gaza/items/5"}, ce qui est correct,
comme disait Jean-François.

A première vue il n'y a pas de moyen existant. Customiser les méthodes
de routage de la requête avec les regex m'a l'air d'être la solution
(utilisée par le routing de Rails). Par manque de temps, je vais pour
le moment me contenter de ce que Rails offre , soit
http://localhost:3000/api/search/items/5?keyword=gaza

Merci
5d3f7d8e534a892e3029a3f3b9761de5?d=identicon&s=25 Joël Azemar (Guest)
on 2009-01-21 10:35
(Received via mailing list)
Au lieu de travailler au niveau de la route, regard du coté de la
construction de ta requête ? Je pense que tu peux facilement la générer
pour
quelle ressemble à la route que tu souhaite, non ?

2009/1/21 Manuel Spuhler <manuel.spuhler@gmail.com>
This topic is locked and can not be replied to.