2010-08-05 2 views
1

J'ai un problème mystique ....itinéraire Rails qui disparaît en application, mais est présente dans les voies de râteau

Dans mon routes.rb j'ai des itinéraires définis et pour exemple

resources :projects, :except => [:destroy] do 
    get :edit_flyer, :on => :member 
    get :guests, :on => :member 
end 

Si je exécuter des routes rake, je reçois

     edit_flyer_project GET /projects/:id/edit_flyer(.:format)      {:controller=>"projects", :action=>"edit_flyer"} 
         guests_project GET /projects/:id/guests(.:format)       {:controller=>"projects", :action=>"guests"} 
             GET /projects(.:format)          {:controller=>"projects", :action=>"index"} 
           projects POST /projects(.:format)          {:controller=>"projects", :action=>"create"} 
          new_project GET /projects/new(.:format)         {:controller=>"projects", :action=>"new"} 
             GET /projects/:id(.:format)         {:controller=>"projects", :action=>"show"} 
           project PUT /projects/:id(.:format)         {:controller=>"projects", :action=>"update"} 
          edit_project GET /projects/:id/edit(.:format)       {:controller=>"projects", :action=>"edit"} 

Comme vous pouvez le voir, l'action show est définie. Mais dans mes applications rails, le show de routage n'est pas défini.

Je l'ajoute dans mon contrôleur d'application juste pour surveiller les routes.

before_filter :zba 

def zba 
    ActionController::Routing::Routes.named_routes.routes.each do |name, route| 
    puts "%20s: %s" % [name, route] 
    end 
    exit 
end 

Et il semble que l'action de la route ne se définit pas ....

Ensuite, j'ai essayé de nettoyer mon routes.rb, comme la suppression de tout mon espace arrière, et comme par magie il fonctionne.

Cela semble être un bug, ou je ne sais pas ce qui s'est passé.

Avez-vous une idée de comment déboguer cela? J'ai également essayé d'enlever le plugin/gems. Pas de changement. Je cours avec Rails3.rc avec Ruby 1.8.7!

Merci pour votre aide!

+0

Je pense que j'ai le même problème ... un peu de chance le fixer? – Sam

Répondre

2

Essayez cette

resources :projects, :except => [:destroy] do 
    member do 
    get :edit_flyer 
    get :guests 
    end 
end 
+0

Merci pour votre réponse! Je l'ai finalement résolu, mais cela semble très étrange. I mes routes.rb, j'ai 8 correspondances comme match 'install', => 'logs # index' Si j'ajoute une autre correspondance, mon action de show a échoué. Cela semble être un bug? ou une limitation simple des rails? – Arkan

+0

oui, semble bogué, mais je ne vois pas vraiment l'image entière – fl00r

Questions connexes