2011-01-16 6 views
0

Hier ist ein Teil meiner Routen-Datei:Rails 3 App wird keine Route anzeigen lassen, obwohl Rake Routen es zeigt

resource :vendor do post 'modify_account' end

Lauf Rake Routen generiert die folgende Zeile

  modify_account_vendor POST /vendor/modify_account(.:format)        {:action=>"modify_account", :controller=>"vendors"} 
          vendor POST /vendor(.:format)            {:action=>"create", :controller=>"vendors"} 
         new_vendor GET /vendor/new(.:format)           {:action=>"new", :controller=>"vendors"} 
        edit_vendor GET /vendor/edit(.:format)           {:action=>"edit", :controller=>"vendors"} 
           GET /vendor(.:format)            {:action=>"show", :controller=>"vendors"} 
           PUT /vendor(.:format)            {:action=>"update", :controller=>"vendors"} 
           DELETE /vendor(.:format)            {:action=>"destroy", :controller=>"vendors"} 
             /vendor(.:format)            {:action=>"account", :controller=>"vendors"} 

Ich kann das Formular laden und überprüfen, ob die URL in der Aktion des Formulars korrekt ist, aber wenn ich sie abschicke, gibt die App einen Fehler aus:

No route matches "/vendor/modify_account"

Irgendwelche Vorschläge, was ich tun kann, um Fehler zu beheben? Firebug überprüft, ob die Fehlerseite vom Typ POST ist.

Antwort

0

Wie sich herausstellt, glaube ich, das Problem war mit meiner Wahl von "Aktionsverb" - ich hätte PUT anstelle von POST verwenden sollen. Dies ist meine neue routes-Datei, und das einzige, was ich ändern musste, waren die _url-Helper-Methodennamen.

resource :vendor do put 'account', :action => 'modify_account' end 
3

Ich hatte ein simular Problem mit einem Singleton Ressource, überprüfen Sie, dass Sie die form_tag in der URL sind vorbei, verwenden wir simple_form und haben die folgende

<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%> 
Verwandte Themen