Url_for() lance un appel vers l'URL à générer


#1

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 :

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 :

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/


#2

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 removed_email_address@domain.invalid


#3

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 :

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 M.
http://blog.shingara.fr


#4

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 M. removed_email_address@domain.invalid


#5

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 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 :slight_smile:

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

Le 07-mai-09 à 10:38, guillaume belleguic a écrit :