rails功能测试问题

时间:2011-01-10 22:30:08

标签: ruby-on-rails routes functional-testing

当我这样做时

get :inside, :format => :xml, :lat2 => "41", :lng2 => "-73.9", :lat1 => "40", :lng1 => "-74", :category => "girl", :order => "date"

使用我的routes.rb包括:

get 'images/inside/:lat1/:lng1/:lat2/:lng2/:order/:category', :to => "images#inside"

我得到了

ActionController::RoutingError: No route matches {:lng1=>"-74", :category=>"girl", :lat2=>"41", :format=>:xml, :lng2=>"-73.9", :order=>"date", :lat1=>"40", :action=>"inside", :controller=>"images"}

但是当我做的时候

get :inside, :format => :xml, :lat2 => "41", :lng2 => "-73", :lat1 => "40", :lng1 => "-74", :category => "girl", :order => "date"

它有效!

唯一的区别是lng2的十进制值。

请注意,如果routes.rb没有params,它可以工作,但我需要那些

2 个答案:

答案 0 :(得分:0)

我敢打赌小数点让Rails认为指定了一种格式(例如.xml或.js)。

你可以使用正则表达式解决它,就像这里描述的那样:http://zargony.com/2009/05/05/routing-parameters-with-a-dot

答案 1 :(得分:0)

据我所知,这是因为你的价值有一段时间。默认情况下,Rails(至少Rails3)路由不能包含句点。要解决此问题,请参阅http://avdi.org/devblog/2010/06/18/rails-3-resource-routes-with-dots-or-how-to-make-a-ruby-developer-go-a-little-bit-insane/