assert_redirected_to方法的奇怪行为

时间:2016-03-18 08:26:29

标签: ruby-on-rails ruby rspec

我有以下代码:

it 'should create' do
  post :create, investor: VALID_CREATE_PARAMS
  expect(response).to redirect_to(controller: 'admin/investors', action: 'show')
end

它会产生以下错误:

1) Admin::InvestorsController create should create
     Failure/Error: expect(response).to redirect_to(controller: 'admin/investors', action: 'show')

     ActionController::UrlGenerationError:
       No route matches {:action=>"show", :controller=>"admin/investors"}

路线是

namespace :admin do

  resources :investors

end

如何解决此问题?我无法使用admin_investor_path断言重定向,因为我在重定向时保留了url参数。

2 个答案:

答案 0 :(得分:2)

默认情况下显示操作也需要传递一个ID,但没有ID,它无法生成网址

答案 1 :(得分:0)

您需要像这样添加:

expect(response).to redirect_to(controller: 'admin/investors', action: 'show', id: assigns(:investor).id )