Je viens de passer à Rails 3, et j'ai décidé de le prendre pour un tourbillon avec une application de dummy/sandbox. La chose étrange est que je ne peux pas sembler obtenir aucun routes pour travailler!Pourquoi cette route Rails 3 de base ne fonctionne-t-elle pas?
Voici mon problème:
[[email protected]:Dev]$rails new TestApp
create
create README
create Rakefile
...
[[email protected]:Dev]$cd TestApp/
[[email protected]:TestApp]$rails g scaffold widget name:text
invoke active_record
create db/migrate/20101020115518_create_widgets.rb
create app/models/widget.rb
...
[[email protected]:TestApp]$rake db:migrate
(in /Users/cobychapple/Dev/TestApp)
== CreateWidgets: migrating ==================================================
-- create_table(:widgets)
-> 0.0015s
== CreateWidgets: migrated (0.0016s) =========================================
[[email protected]:TestApp]$rake routes
(in /Users/cobychapple/Dev/TestApp)
widgets GET /widgets(.:format) {:action=>"index", :controller=>"widgets"}
widgets POST /widgets(.:format) {:action=>"create", :controller=>"widgets"}
new_widget GET /widgets/new(.:format) {:action=>"new", :controller=>"widgets"}
edit_widget GET /widgets/:id/edit(.:format) {:action=>"edit", :controller=>"widgets"}
widget GET /widgets/:id(.:format) {:action=>"show", :controller=>"widgets"}
widget PUT /widgets/:id(.:format) {:action=>"update", :controller=>"widgets"}
widget DELETE /widgets/:id(.:format) {:action=>"destroy", :controller=>"widgets"}
[[email protected]:TestApp]$rails s -d
=> Booting WEBrick
=> Rails 3.0.1 application starting in development on http://0.0.0.0:3000
[[email protected]:TestApp]$
Alors maintenant, je Foncez sur mon navigateur et visiter http://localhost:3000/widgets
Rails dit: erreur de routage: Aucun élément correspondant de l'itinéraire "/ widgets"
I ne comprend pas comment les routes rake peuvent montrer que l'itinéraire existe et que le serveur ne le trouvera pas. J'ai fait de nombreuses recherches sur googles et il semble y avoir quelques personnes avec des problèmes de routage dans les rails 3, mais aucun d'eux n'est aussi fondamental que ce que je suis en train de recevoir. Je suis sûr que j'ai raté quelque chose de petit en cours de route mais je ne peux pas pour la vie de moi comprendre! Aucune suggestion?
Mon fichier routes.rb est seulement ce que génère échafaudage + commentaires de documentation:
TestApp::Application.routes.draw do
resources :widgets
# The priority is based upon order of creation:
# skip the rest of the comments...
end
Hav vous l'application de fichier/contrôleur/widgets_controller.rb? – shingara
J'ai fait exactement les mêmes étapes que vous avez faites et cela a fonctionné sans problèmes. Bizarre ... – Matt
Oui ... app/controllers/widgets_controller.rb est présent et généré par le script d'échafaudage. Merci pour le chèque tho! – Coby