【发布时间】:2010-10-08 17:15:48
【问题描述】:
我在使用 Rails 3 路由时遇到了一些问题,我无法理解为什么事情不正常。
例如,我有一个功能测试,其中包括:
assert_routing("/store/users/me@here.com/license/ch7bHtrx",
{:controller => 'store/users', :action => 'license', :email => 'me@here.com', :id => 'ch7bHtrx' })
产生
ActionController::RoutingError: No route matches {:controller=>"store/users", :email=>"me@here.com", :id=>"ch7bHtrx", :action=>"license"}
/test/functional/store/users_controller_test.rb:32:in `test_should_get_license_download'
这很有趣,因为它实际上在控制器方向的路径中起作用,routes.rb 包括
namespace :store do
controller :users do
get 'users/:email/license/:id' => :license, :email => VALID_EMAIL_REGEX_FOR_ROUTE, :as => :license_download
end
end
和 rake 路由产生
store_license_download GET /store/users/:email/license/:id(.:format) {:action=>"license", :controller=>"store/users", :email=>/([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([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}
我是一个相对的 Rails 新手,所以我觉得没有资格说某事有问题,但我根本无法解释 rake 路由会有这些条目,但实际上无法路由该条目方式。
任何帮助将不胜感激。
编辑:删除了一个示例问题,该问题最终成为 form_ 中的一个错误,用于混淆路由系统与冲突信息。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3