Маршруты Rspec redirect_to не оправдывают ожиданий (или неправильно анализируются?), почему?

StackOverflow https://stackoverflow.com/questions/954708

Вопрос

Кажется, мой маршрут rspec для :controller => 'phones', :action => 'edit' работает... он должен быть 'phones/123/edit' и IS согласно тестам rspec и маршрутам rake.Но когда я создаю ожидание redirect_to, оно терпит неудачу.

Вот тест маршрутов для URL-адреса:

    it "maps #edit" do
      route_for(:controller => "phones", :action => "edit", :id => "1").should == "/phones/1/edit"
    end #THIS TEST PASSES

Вот ожидание, которое терпит неудачу:

    put :update, :id => "1", :phone => {}
    response.should redirect_to :controller => 'phones', :action => 'edit'

И вот сообщение, которое я получаю в тестах:

expected redirect to {:controller=>"phones", :action=>"edit"},
got redirect to "http://test.host/phones/1089/edit" # BUT THIS THE URL I WAS EXPECTING!

Что за шизницы?

Это было полезно?

Решение

Причина, по которой это не удается, заключается в том, что вам не хватает идентификатора в вашем ожидании.Должен быть:

response.should redirect_to :controller => 'phones', :action => 'edit', :id=>1
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top