2010-01-26 6 views
0

Ma version rails est 2.3.5 (2.3+)Comment puis-je visiter urls avec .html suffixe

Comment puis-je visiter urls avec .html suffixe? Tout comme localhost:3000/welcome.html (bienvenue est un contrôleur).

me donnent des erreurs de routage lorsque je visite urls above.But cela fonctionne si l'URL avec le format param comme ceci:

localhost:3000/welcome?format=html 

En routes.rb:

ActionController::Routing::Routes.draw do |map| 
    map.root :controller => "welcome" 
    map.resources :users 
    map.resource :session 

    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

Mais, mais, mais je trouve localhost:3000/users.html fonctionne.

Répondre

1

Utilisez cette route pour se connecter à un contrôleur:

map.connect "welcome.html", :controller => :welcome, :action => :index 

Qu'il y ait .html n'a pas d'importance pour le routage, il est comme tout autre chemin de connexion à un autre contrôleur. Donc pas besoin de modifier votre contrôleur pour cela. L'utilisation des paramètres format=html donne un paramètre, de sorte qu'un contrôleur peut renvoyer le type de résultat spécifique, ce qui n'est pas ce que vous souhaitez en fonction de votre question. Selon vos informations, cela (en autorisant .html dans vos chemins) est automatiquement implémenté lors de la création de routes avec la méthode map.resources. Comme il travaille pour les utilisateurs dans votre exemple.

+0

Ce qui veut dire: si ce n'est pas une ressource reposante (comme map.resources: utilisateurs), je dois config routes nommées pour chaque demande de format à partir de tous les types de clients (pc, mobile, etc) html, wml, etc. maintenant Comment pourrait-il afficher automatiquement une page d'affichage par son suffixe (.html, .wml), juste reposant – qichunren

+0

Comment voulez-vous des URL reposantes? Pour les utilisateurs, il y aurait quelque chose comme 'sers.html' pour une action d'index et' users.html/10' et 'users.html/10/edit' pour une action de show et d'édition? Cela ne semble pas juste ... – Veger

1

Vous pouvez essayer ceci:

map.connect ':controller.:format', :action => :index