Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 自定义POST方法的Rspec控制器测试非常混乱_Ruby On Rails_Rspec_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 自定义POST方法的Rspec控制器测试非常混乱

Ruby on rails 自定义POST方法的Rspec控制器测试非常混乱,ruby-on-rails,rspec,ruby-on-rails-5,Ruby On Rails,Rspec,Ruby On Rails 5,我无法为add\u queue\u item namespace :api do namespace :v1, defaults: {format: 'json'} do resources :stores do post 'add_queue_item' => 'stores#add_queue_item', :as => "add_queue_item" end end

我无法为
add\u queue\u item

      namespace :api do
        namespace :v1, defaults: {format: 'json'} do
          resources :stores do
            post 'add_queue_item' => 'stores#add_queue_item', :as => "add_queue_item"
          end
        end
      end
例外情况

可能是因为正在形成的路线需要
存储id
。您应该将
store_id
作为参数传递。详情如下


你的路线已经形成了

api_v1_store_add_queue_item POST   /api/v1/stores/:store_id/add_queue_item(.:format) api/v1/stores#add_queue_item {:format=>"json"}
在您的情况下,这是规范(模拟数据)

这就产生了错误

    ActionController::UrlGenerationError:
       No route matches {:action=>"add_queue_item", :controller=>"api/v1/stores", :id=>1, :queue_item=>{:store_id=>3}}
     # ./spec/controllers/api/v1/stores_controller_spec.rb:7:in `block (2 levels) in <top (required)>'

Finished in 0.10376 seconds (files took 0.92513 seconds to load)
1 example, 1 failure
成功

Api::V1::StoresController
"do"
  assigns a newly created api_v1 as @api_v1

Finished in 0.12028 seconds (files took 1.14 seconds to load)
1 example, 0 failures

可能是由于正在形成的路由需要
存储\u id
。您应该将
store_id
作为参数传递。详情如下


你的路线已经形成了

api_v1_store_add_queue_item POST   /api/v1/stores/:store_id/add_queue_item(.:format) api/v1/stores#add_queue_item {:format=>"json"}
在您的情况下,这是规范(模拟数据)

这就产生了错误

    ActionController::UrlGenerationError:
       No route matches {:action=>"add_queue_item", :controller=>"api/v1/stores", :id=>1, :queue_item=>{:store_id=>3}}
     # ./spec/controllers/api/v1/stores_controller_spec.rb:7:in `block (2 levels) in <top (required)>'

Finished in 0.10376 seconds (files took 0.92513 seconds to load)
1 example, 1 failure
成功

Api::V1::StoresController
"do"
  assigns a newly created api_v1 as @api_v1

Finished in 0.12028 seconds (files took 1.14 seconds to load)
1 example, 0 failures

您可以尝试在您的spec中发布:api\u v1\u store\u add\u queue\u item\u path吗!您可以尝试在您的spec中发布:api\u v1\u store\u add\u queue\u item\u path吗!
Api::V1::StoresController
"do"
  assigns a newly created api_v1 as @api_v1

Finished in 0.12028 seconds (files took 1.14 seconds to load)
1 example, 0 failures