我得到的错误是,即使有耙车路线,也没有路线与之匹配:
... POST /todo/:todo/todo_comments(.:format)
在我的rspec中,我有
post :todo_comments, params: { todo_id: 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
参数,因为它将从路线中提取出来。