单一资源上rspec测试文章的路由不匹配

时间:2018-07-21 00:42:52

标签: ruby-on-rails ruby testing rspec

我得到的错误是,即使有耙车路线,也没有路线与之匹配:

... POST /todo/:todo/todo_comments(.:format)

在我的rspec中,我有

post :todo_comments, params: { todo_id: 1 }

1 个答案:

答案 0 :(得分:1)

听起来您的路线定义为:

resources :todos do
  resources :todo_comments
end

控制器规范type: :controller)中,您需要在处理请求的控制器中指定操作名称。在这种情况下,这就是:index

post :index, params: { todo_id: 1 }

另一方面,如果您使用的是请求规范type: :request),则需要使用URL来请求,您可以使用路由助手来构建该URL:

post todo_todo_comments_path(1)

# or, without the helper:
post "/todos/1/todo_comments"

请注意,这些表格并未明确命名:todo_id参数,因为它将从路线中提取出来。