Rails路由问题与控制器测试

时间:2011-09-15 17:07:42

标签: ruby-on-rails ruby-on-rails-3 unit-testing routes

我不知道我在这里做错了什么。有人有任何见解吗?

这是我的routes.rb

resources :accounts do
    collection do
        get "search/:term/:offset/:limit.:format", :action => "search", :constraints => { :offset => /\d+/, :limit => /\d+/ }
    end
end

这是我的佣金路线输出......

GET    /accounts/search/:term/:offset/:limit.:format    {:offset=>/\d+/, :action=>"search", :controller=>"accounts", :limit=>/\d+/}

这是我的测试线...

get :search, :term => "Test", :offset => 0, :limit => 2

这是我的错误......

ActionController::RoutingError: No route matches {:term=>"Test", :action=>"search", :controller=>"accounts", :offset=>0, :limit=>2}

有什么想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

我发现了问题......

1)期望匹配字符串而不是

:offset => 0, :limit => 2

应该是

:offset => '0', :limit => '2'

2):格式不是可选的。我选择让它成为一个可选的参数,但是如果你遇到这个,你必须传递格式,如果你不使它可选。