Forum: Rails France url_for() lance un appel vers l'URL à générer

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.
60b8d3f023999069046e5bb5c2fbd58a?d=identicon&s=25 Céd B. (akyrho)
on 2009-05-07 10:28
(Received via mailing list)
Bonjour,

Sur l'application que je développe en ce moment, je fais appel au
helper url_for() pour générer une balise link dans l'entête de mon
gabarit HTML :
<link rel="alternate" type="application/rss+xml" title="Flux des
actualité" href="<%= url_for(:controller => 'blogs', :format => :rss)
%>" />
Je pensais que tout allait bien jusqu'à ce que je remarque qu'en fait,
chaque affichage de page au sein de mon application impliquait un
appel à ce fichier RSS.

Par contre, si je modifie mon entête comme ceci :
<link rel="alternate" type="application/rss+xml" title="Flux des
actualité" href="http://localhost:3000/blogs.rss" />
tout rentre de l'ordre : mon entête est correctement interpretée par
mon navigateur, et aucun appel ne part vers blogs.rss.

Bien sûr, je pourrais me contenter de cette astuce, mais je
préfèrerais garder mon code "propre". Quelqu'un aurait-il déjà
rencontré un problème similaire?

Merci

Bousmanne Cédric
http://cedricbousmanne.com/
5183febd0dfb911f94c270ddd174fe71?d=identicon&s=25 guillaume belleguic (Guest)
on 2009-05-07 10:39
(Received via mailing list)
bonjour,regarde du côté de auto_discovery_link_tag.
de mémoire, url_for ajoute quelque chose comme ?54654654654 (peut
importe
les chiffre) à la fin des urls et donc le navigateur doit pensé que le
lien
est nouveau.


2009/5/7 Bousmanne Cédric <akyrho@gmail.com>
2fd0206c71a1b22a9cc6293f38537461?d=identicon&s=25 Cyril Mougel (shingara)
on 2009-05-07 10:40
(Received via mailing list)
Le 7 mai 09 à 10:27, Bousmanne Cédric a écrit :

> un appel à ce fichier RSS.
>
> Par contre, si je modifie mon entête comme ceci :
> <link rel="alternate" type="application/rss+xml" title="Flux des
> actualité" href="http://localhost:3000/blogs.rss" />
> tout rentre de l'ordre : mon entête est correctement interpretée par
> mon navigateur, et aucun appel ne part vers blogs.rss.
>
> Bien sûr, je pourrais me contenter de cette astuce, mais je
> préfèrerais garder mon code "propre". Quelqu'un aurait-il déjà
> rencontré un problème similaire?

Mais ce qui est généré est "normal" ou pas ?

--
Cyril Mougel
http://blog.shingara.fr
5183febd0dfb911f94c270ddd174fe71?d=identicon&s=25 guillaume belleguic (Guest)
on 2009-05-07 10:51
(Received via mailing list)
peut pas dire, tu n'as pas donné le code généré mais je suppose que si
rails
dispose d'une méthode spéciale auto_discovery_link_tag c'est qu'il y a
une
raison.

2009/5/7 Cyril Mougel <cyril.mougel@gmail.com>
60b8d3f023999069046e5bb5c2fbd58a?d=identicon&s=25 Céd B. (akyrho)
on 2009-05-07 10:59
(Received via mailing list)
Merci Guillaume, mais cela provoque le même problème.

J'ai peur de ne pas avoir été très clair dans mes explications :

- Si j'affiche ma balise <link> avec url_for() ou
auto_discovery_link_tag() pour générer l'url de mon flux RSS, voici ce
qui apparait dans mes logs, à l'affichage de /customers/new :

Processing CustomersController#new (for 127.0.0.1 at 2009-05-07
10:51:23) [GET]
   SQL (0.2ms)   SET client_min_messages TO 'panic'
   SQL (0.1ms)   SET client_min_messages TO 'notice'
   Blog Load (3.2ms)   SELECT * FROM "blogs" ORDER BY blogs.id DESC
LIMIT 1
   User Load (1.9ms)   SELECT * FROM "users" WHERE ("users"."login" =
E'logo') LIMIT 1
   CACHE (0.0ms)   SELECT * FROM "users" WHERE ("users"."login" =
E'logo') LIMIT 1
   Country Load (2.0ms)   SELECT * FROM "countries"
Rendering template within layouts/application
Rendering customers/new
Rendered sessions/_form (0.7ms)
   Country Load (0.6ms)   SELECT * FROM "countries" WHERE
("countries"."id" = 79)
   CACHE (0.0ms)   SELECT * FROM "countries" WHERE ("countries"."id" =
79)
Rendered customers/_form (11.6ms)
   CACHE (0.0ms)   SELECT * FROM "users" WHERE ("users"."login" =
E'logo') LIMIT 1
Rendered sessions/_header_form (0.5ms)
Rendered layouts/_menu (1.2ms)
Completed in 289ms (View: 40, DB: 8) | 200 OK
[http://localhost/customers/new
]

Processing BlogsController#index to rss (for 127.0.0.1 at 2009-05-07
10:51:24) [GET]
   SQL (0.1ms)   SET client_min_messages TO 'panic'
   SQL (0.1ms)   SET client_min_messages TO 'notice'
   Blog Load (3.9ms)   SELECT * FROM "blogs" ORDER BY blogs.id DESC
LIMIT 1
   User Load (2.0ms)   SELECT * FROM "users" WHERE ("users"."login" =
E'logo') LIMIT 1
   CACHE (0.0ms)   SELECT * FROM "users" WHERE ("users"."login" =
E'logo') LIMIT 1
   Blog Count (0.5ms)   SELECT COUNT(*) FROM blogs
   Blog Load (0.9ms)   SELECT * FROM "blogs" ORDER BY created_at DESC
LIMIT 5 OFFSET 0
Rendering template within layouts/application
Rendering blogs/index
Completed in 262ms (View: 15, DB: 7) | 200 OK
[http://localhost/blogs.rss
]

Et c'est pareil pour chaque partie de mon application. Chaque
affichage de page lancera une reqûete vers BlogsController, or je ne
m'attend pas à ce qu'il y en ait, puisque je désire simplement
afficher une URL, pas faire un appel complet.

En espérant avoir été plus clair :-)

Bousmanne Cédric
http://cedricbousmanne.com/






Le 07-mai-09 à 10:38, guillaume belleguic a écrit :
This topic is locked and can not be replied to.