2013-04-05 2 views
1

J'ai une application dans laquelle je crée une action get appelée "new_911". Quand je mets new_911_call_path dans la disposition de l'application, j'obtiens une erreur "aucune route ne correspond à new_911 controller: calls". Pourtant, il y a une action dans le contrôleur d'appels appelé new_911. Qu'est-ce que je fais mal?Aucune route ne correspond au contrôleur dans l'application rails

appels du contrôleur:

def new_911 
    @call = Call.new :call_status => "open" 
    respond_with @call 
end 

application.html.erb

<li><%= link_to 'New 911 Call', new_911_call_path %></li> 

routes.rb

resources :calls do 
    member do 
     post 'close' 
     post 'cancel' 
     post 'note' 
     get 'new_return' 
     get 'duplicate_call' 
     get 'edit_times' 
     put 'update_billing' 
     get 'new_911' 
    end 

routes râteau: new_911_call GET/appels /: id/new_911 (.: format) appels # new_911

Répondre

1

Vous devez ajouter le paramètre à l'itinéraire. Vous utilisez une route de membre, vous devez donc ajouter le paramètre id, regardez this. Vous devrez peut-être changer cette route.

0

Compris. J'utilisais un membre au lieu d'une collection. L'utilisation de new_911 m'a aussi causé une erreur constante, donc je l'ai changé en EmergencyCalls pour mon schéma de contrôleur et j'ai utilisé la "nouvelle" action normale. Ressources ajoutées: emergency_calls à mon fichier de routes et cela a fonctionné.

Désolé pour le goof.

Questions connexes