2011-02-26 2 views
0

Je reçois une erreur de la part de rails se plaignant d'un itinéraire.Erreur de correspondance de route

C'est le lien

link_to 'Add New Rate', new_owner_property_rate_path 

L'erreur

No route matches {:action=>"new", :controller=>"owner/rates"} 

Le chemin semble bien que si je ratisser les routes que je reçois cette ligne d'itinéraire,

Ceci est mon route fichier, Ils sont assis dans un dossier appelé propriétaire d'où l'espace de noms

namespace :owner do 
    resources :properties do 
    resources :rates 
    end 
    root :to => "home#index" 
end 

Le contrôleur Tarifs

class Owner::RatesController < Owner::BaseController 

    def index 
    @rates = Rate.all 
    end 

    def new 
    @property = Property.find(params[:property_id]) 
    @rate = Rate.new 
    end 
end 

Je peux entrer manuellement le chemin bien?

Toutes les idées

Répondre

0

Je l'ai trouvé. Je devais ajouter l'objet dans le chemin, par exemple,

new_owner_property_rate_path(@property) 
1

On dirait que vous ne pouvez pas avoir rechargées correctement les routes? Essayez de redémarrer votre serveur d'applications Rails. J'ai vu des routes ne pas reconnaître même si la route nommée est chargée correctement et que la route est définie.

Un grand truc pour tester les voies nommées est d'ouvrir une console Rails (de ./script/console) et de référence sur le raccourci « app » comme ceci:

$> ./script/console 
Loading development environment (Rails 2.3.5) 
>> app.new_owner_property_rate_path 
NoMethodError: undefined method `new_owner_property_rate_path' for #<ActionController::Integration::Session:0x109bd1a78> 
     from vendor/rails/actionpack/lib/action_controller/test_process.rb:511:in `method_missing' 
     from (irb):1 
>> 

C'est le moyen le plus simple que je sais valider de nouvelles routes et tester une expression d'échantillon ou une route nommée. Ceci est particulièrement utile pour vérifier les routes paramétrées avec des erreurs étranges.

EDIT: Notez qu'un objet appelé "app" est disponible dans la console Rails. Il s'agit d'une référence à votre application Rails et vous permet de tester les routes nommées et bien d'autres aspects de l'application.

+0

Désolé, mais j'ai rechargé le fichier routes et redémarrer le serveur. J'ai essayé le chemin dans la console et ça ne m'a pas donné d'itinéraire. Je ne peux pas comprendre car tout me semble juste. – Lee

Questions connexes