编辑#2
我正在为 api 编写一个快速测试套件,并且正在使用控制器规范。我正在尝试使用 post / get 调用的路由,但是否甚至咨询过这些路由,或者它只是用于 controllmer 方法的符号/字符串?
原始问题
这可能是一个非常幼稚的问题,但我在 rails 中有一条命名路线,并且正在使用 rspec 对其进行测试。在 routes.rb 中,我有:
match '/api/get-next-highest-position-in-menu-header' => 'api_edit#get_next_highest_position_in_menu_header', :as => :jt_next_highest
在我的规范中,我有以下内容:
post :jt_next_highest, { menu_header_id: mh.id }
但我收到以下错误
1) ApiEditController Adding a Item should get the next highest position in a menu_header
Failure/Error: post :jt_next_highest, { menu_header_id: mh.id }
AbstractController::ActionNotFound:
The action 'jt_next_highest' could not be found for ApiEditController
# ./spec/controllers/api_edit_controller_spec.rb:52:in `block (3 levels) in <top (required)>'
如果我查看 rake 路线:
Fri May 17$ rake routes | grep 'get_next_highest'
jt_next_highest /arc/v1/api/get-next-highest-position-in-menu-header(.:format) api_edit#get_next_highest_position_in_menu_header
Fri May 17$
我不确定这有什么问题,因为我觉得这应该可行。关于我做错了什么的任何想法?
编辑 1
试:
post :jt_next_highest_path, { menu_header_id: mh.id }
刚得到我
The action 'jt_next_highest_path' could not be found for ApiEditController