RSpec销毁方法没有路由匹配

RSpec销毁方法没有路由匹配,rspec,ruby-on-rails-5,Rspec,Ruby On Rails 5,我正在尝试测试我的应用程序的创建方法,但出现以下错误: 1) RanksController POST #create when user is sign in creates rank Failure/Error: post :create, params: { user: user, movie: movie } ActionController::UrlGenerationError: No route matches {:action=>"create", :control

我正在尝试测试我的应用程序的创建方法,但出现以下错误:

1) RanksController POST #create when user is sign in creates rank
   Failure/Error: post :create, params: { user: user, movie: movie }

ActionController::UrlGenerationError:
No route matches {:action=>"create", :controller=>"ranks", :movie=>#<Movie 
id: 1, title: "excepturi", description: "Vilicus crur volutabrum balbus cum 
vulgaris statua...", released_at: "1998-03-22 00:00:00", avatar: nil, 
genre_id: 1, created_at: "2019-01-15 14:45:10", updated_at: "2019-01-15 
14:45:10">, :user=>#<User id: 1, email: "deja@ruel.co", created_at: "2019- 
01-15 14:45:10", updated_at: "2019-01-15 14:45:10", phone_number: name: "">}
无线电控制器

  class RanksController < ApplicationController
       before_action :set_movie, only: %i[create destroy]

       def create
         Rank.create!(user: current_user, movie: @movie)

         redirect_to @movie
       end

       def destroy
         rank = @movie.ranks.find(params[:id])
         rank.destroy!

         redirect_to @movie
       end

       private

       def set_movie
         @movie = Movie.find(params[:movie_id])
       end
     end
在电影中显示动作\u controller.rb:

  def show
    @movie = Movie.find(params[:id])
    @like = @movie.likes.find_by(user: current_user)
  end
routes.rb

 resources :movies, only: [:index, :show] do
   resources :ranks, only: %i[create destroy]
   member do
     get :send_info
   end
   collection do
     get :export
   end
 end

在web版本中,一切正常运行

尝试传递id,而不是像下面这样的对象

post :create, params: { user_id: user.id, movie_id: movie.id }
我认为您根本不需要传递
user
user\u id
,因为您在创建操作中没有使用它<创建操作上的代码>当前用户应在块之前返回您登录的用户

 resources :movies, only: [:index, :show] do
   resources :ranks, only: %i[create destroy]
   member do
     get :send_info
   end
   collection do
     get :export
   end
 end
post :create, params: { user_id: user.id, movie_id: movie.id }