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.
Manuel S. (Guest)
on 2009-01-20 23: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
Jean-François Trân (Guest)
on 2009-01-21 01: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_
Manuel S. (Guest)
on 2009-01-21 02: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
Jean-François Trân (Guest)
on 2009-01-21 02: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_
Joël Azemar (Guest)
on 2009-01-21 10: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 S. <removed_email_address@domain.invalid>
Manuel S. (Guest)
on 2009-01-21 11: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
Joël Azemar (Guest)
on 2009-01-21 11: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 S. <removed_email_address@domain.invalid>
This topic is locked and can not be replied to.