2010-08-13 3 views
0

Je suis nouveau sur les rails et j'ai un problème étrange que je ne comprends pas ...Problèmes de routage et de chemin

J'ai créé une application de base avec un seul contrôleur. ce contrôleur est des routes de nom (à des fins de test ...) et il contient des actions d'index, de nouvelles et d'édition.

J'ai ajouté une ressource dans le fichier routes.rb: map.resources: Itinéraires

Le problème que j'ai est quand j'essaie de faire un lien vers une action comme link_to edit_route_path (certains id) Je reçois la erreur variable locale non définie ou méthode `chemin 'pour #ActionController :: Routing :: RouteSet: 0x101f4d088>

Lorsque j'utilise route_path directement, cela fonctionne correctement.

Merci pour votre aide!

sortie des itinéraires de râteau:

routes GET /routes(.:format) {: controller => "itinéraires",: action => "index"}
POST /routes(.:format) {: controller => "routes",: action => "créer"}
new_route GET /routes/new(.:format) {: controller => "routes",: action => "nouveau"}
edit_route GET /routes/:id/edit(.format) {: controller => "routes",: action => "edit"}
route GET /routes/:id(.:format) {: controller => "routes",: action => "show"}
PUT /routes/:id(.format) {: controller => "routes",: action => "mise à jour"}
DELETE /routes/:id(.:format) {: controller => "routes" ,: action => "détruire"}
/: controller /: action /: id
/:controller/:action/:id(.:format)

c'est l'erreur que j'ai:

variable locale non définie ou méthode `path » pour #ActionController :: :: Routing RouteSet: 0x101f4d128>

et la trace de la pile:

/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/routing/route_set.rb:386:in generate'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:208:in
rewrite_path '
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:187:in rewrite_url'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:165:in
rewrite'
/opt/local/lib/ruby ​​/ pierres précieuses /1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:625:in url_for'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/url_helper.rb:85:in
envoyez '
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/ action_view/helpers/url_helper.rb: 85: dans url_for'
(eval):17:in
edit_blog_path '
/Users/guillaume/Projets/rails/testroutes/app/views/blogs/edit.html.erb:4:in `_run_erb_app47views47blogs47edit46html46erb »

version rubis 1.8.7 version bijou est 1.3.7 La version des rails est 2.3.8

J'ai essayé les postes de base échafaudage des rails guide de mise utilisateur a commencé et j'ai la même erreur quand je suis dans la nouvelle page ou modifier ...

ActionController :: :: Routes de routage .fait faire | carte |
map.resources: itinéraires
map.connect ': controller /: action /: id'
map.connect ': controller /: action /: id:. Format'
fin

Le chose étrange est que tout fonctionnait bien la semaine dernière et je ne sais pas ce que j'ai changé ...

Merci beaucoup!

+0

Je reçois les mêmes résultats que sachinrathore, pouvez-vous ajouter à la poste le fichier routes.rb (moins les commentaires s'il vous plaît) et le code qui génère l'erreur, aussi où êtes-vous mettre ce code. Je suis un peu confus quant à ce qui retourne le routeet puis en lançant 'path'. Aussi quelle version de rails utilisez-vous? –

+0

Je n'ai pas accès à mon projet actuellement mais mon routes.rb est très basique. Il contient les routes par défaut à la fin du fichier et une map.resources: routes, c'est tout. pour la version, j'ai le dernier (2.3.8) – glatour

+0

Ok, moi aussi et pas capable de répliquer. Je ne suis pas sûr de voir le code, mais une chose à vérifier est que vous n'avez pas rencontré accidentellement des noms réservés - peut-être avec un bijou ou quelque chose. Essayez de le renommer pour quelque chose d'un peu décalé juste pour être sûr. Donc mapper une ressource 'map.resources: angus' et voir si vous êtes capable de répliquer de cette façon. –

Répondre

0

Aller à terimnal et le type

rake routes 

Il vous montrera tous les itinéraires possibles définissent dans votre fichier routes.rb. Ensuite, vérifiez edit_route_path est là ou pas

+0

J'ai ajouté la sortie des routes rake dans la question – glatour

+0

J'ai vérifié dans mes locaux ses travaux. I edit_route_path (1) Il donne path/routes/1/edit –

+0

c'est bizarre et je ne comprends vraiment pas celui-ci, ça devrait marcher et je me demande si ce n'est pas quelque chose avec mes rails et la version ruby ... Quelles versions avez-vous pour les rails? – glatour

Questions connexes