Rails 3 application ne correspond pas à une route même si itinéraires de rake le montre
-
11-10-2019 - |
Question
Voici une partie de mon dossier de routes:
resource :vendor do post 'modify_account' end
Exécution des routes râteau va générer la ligne suivante
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"}
Je peux charger le formulaire et vérifier l'URL est correcte dans l'action de la forme, mais quand je soumets, l'application renvoie une erreur:
No route matches "/vendor/modify_account"
Toutes les suggestions quant à ce que je peux faire pour résoudre les problèmes? Firebug vérifie que la page d'erreur est de type POST.
La solution 2
Comme il se trouve, je crois que la question était de mon choix de « verbe d'action » - Je l'ai utilisé PUT au lieu de POST. Ceci est mon nouveau fichier de routes, et la seule chose que je devais changer était le nom de la méthode d'aide _url.
resource :vendor do put 'account', :action => 'modify_account' end
Autres conseils
J'ai eu un problème simular avec une ressource singleton, vérifiez que vous passez dans l'URL pour la form_tag, nous utilisons simple_form et ont les éléments suivants
<%= simple_form_for @enterprise_account, :url => enterprise_account_path do |f| -%>