Je rencontre quelques problèmes avec le routage Rails 3, et je n'arrive pas à comprendre pourquoi les choses ne fonctionnent pas.Rails 3 échecs de routage
Par exemple, j'ai un test fonctionnel qui comprend:
assert_routing("/store/users/[email protected]/license/ch7bHtrx",
{:controller => 'store/users', :action => 'license', :email => '[email protected]', :id => 'ch7bHtrx' })
qui produit
ActionController::RoutingError: No route matches {:controller=>"store/users", :email=>"[email protected]", :id=>"ch7bHtrx", :action=>"license"}
/test/functional/store/users_controller_test.rb:32:in `test_should_get_license_download'
qui est intéressant parce que cela fonctionne réellement dans la voie de la direction du contrôleur, routes.rb comprend
namespace :store do
controller :users do
get 'users/:email/license/:id' => :license, :email => VALID_EMAIL_REGEX_FOR_ROUTE, :as => :license_download
end
end
et rake routes produit
store_license_download GET /store/users/:email/license/:id(.:format) {:action=>"license", :controller=>"store/users", :email=>/([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~][email protected]((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)/i}
Je suis un débutant Rails relatif, donc je ne me sens pas qualifié pour dire que la poussette de quelque chose, mais je ne peut tout simplement venir avec une explication qui râteau routes auraient les entrées, mais échouerait pour réellement acheminer de cette façon.
Toute aide serait grandement appréciée.
Édition: Suppression d'un exemple de problème qui a fini par être un bogue dans la forme_pour confondre le système de routage avec des informations conflictuelles.
Ce n'est pas ce que dit le rake route, et le test fonctionne très bien pour le mapping de l'url à l'action. Si je supprime le préfixe '/ users', le mappage de l'URL vers l'action commence également à échouer. Donc, je ne pense pas que le mot clé 'controller' fonctionne de la même manière que 'resources' à cet égard. – bdrister