Hi again, I figured out the issue. RSpec's route_to wraps Rails' assert_routing, which checks two things: - Rails recognizes the given path and routes it to a particular spot in your application (via assert_recognizes) - a particular set of options generate a particular path (via assert_generates)
The problem (in my example below) is that the set of options given: {:controller => "days", :action => "index", :student_id => "1"} generates the path: "/days" not: "/student/1/days" Rails doesn't take into account the foreign key of nested resources when generating a path from a set of options. Now that I understand this, I can write a test just using assert_recognizes that passes: assert_recognizes({:controller => "days", :action => "index", :student_id => "1"}, "/students/1/days") Hooray! I hope this helps someone else out there. It was really confusing me. Yours, Trevor On Sat, Jul 3, 2010 at 2:40 AM, Lalish-Menagh, Trevor <t...@trevreport.org> wrote: > Hi all, > > I must be doing something wrong here. Could someone point me in the > right direction? I am trying to test my nested resources in Rails 3. > > The route: > resources :students do > resources :days > end > > The test: > it "recognizes and generates #index" do > { :get => "/students/1/days" }.should route_to(:controller => > "days", :action => "index", :student_id => "1") > end > > The error: > 1) DaysController routing nested in students recognizes and generates #index > Failure/Error: { :get => "/students/1/days" }.should > route_to(:student_id => "1", :controller => "days", :action => > "index") > found extras <{:student_id=>"1"}>, not <{}> > > The route works find in the browser, I just don't know what I am > missing to make the test pass. > > Yours, > Trevor > -- > Trevor Lalish-Menagh > 484.868.6150 mobile > t...@trevreport.org > http://www.trevmex.com/ > -- Trevor Lalish-Menagh 484.868.6150 mobile t...@trevreport.org http://www.trevmex.com/ _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users