ActionController :: UrlGenerationError:没有路由匹配{:action =>“ index”,:controller =>“ api / v1 / topics”,:format =>:json}

时间:2018-09-03 11:42:08

标签: ruby-on-rails rspec

我在文件夹(api / v1 /)中的主题控制器为

class Api::V1::TopicsController < ApplicationController
  def index
    @topics = Topic.all
    render json: @topics
  end
end

当我尝试为上述代码编写rspec时:

require 'rails_helper'
require 'spec_helper'

RSpec.describe Api::V1::TopicsController do
  describe "GET #index" do
    it "should return a successful response" do
      get :index, format: :json
      expect(response).to be_success
    end
  end
end

我遇到错误:

ActionController::UrlGenerationError: No route matches {:action=>"index", :controller=>"api/v1/topics", :format=>:json}.

但是我有正确的路线,我不知道为什么会这样显示。任何解决方案都受到欢迎。

我的路线为:

Rails.application.routes.draw do
  namespace :api, defaluts: {format: :json} do
    namespace :v1 do
      resources :topics
    end
  end
end

3 个答案:

答案 0 :(得分:3)

路线错别字: namespace :api, defaluts: {format: :json} => defaults

答案 1 :(得分:2)

您有错字。 defaluts: {format: :json}应该是defaults: {format: :json}

答案 2 :(得分:-2)

好的,我在“默认值”中有错字。每个人都会犯错字错误,因此您不必反对我的问题。