未定义的方法`respond_to'对于Api :: V1 :: Controller

时间:2017-03-23 21:24:22

标签: ruby-on-rails api

我已经在这里讨论了主题,但提到的解决方案并没有为我解决。

我想为我的rails应用程序创建一个API,并按照Railscast的教程进行API版本控制。我正在使用Rails 5。

这是我的routes.rb文件:

Rails.application.routes.draw do

  namespace :api, defaults: { format: 'json' } do
    namespace :v1 do
        resources :orders
    end
  end

end

这是orders_controller.rb下的新controllers/api/v1

module Api
  module V1
    class OrdersController < ApplicationController

        respond_to :json

        def index
            respond_with Order.all
        end

    end
  end
end

访问http://localhost:3000/api/v1/orders时,我总是遇到以下异常:

undefined method `respond_to' for Api::V1::OrdersController:Class Did you mean? respond_to?

我已经将responder添加到我的gemfile中但是没有成功。

1 个答案:

答案 0 :(得分:2)

在您的订单控制器中,您拼错了。改变

repsond_with Order.all

respond_with Order.all

此外,您在路线文件中也出现了拼写错误。变化:

namespace :api, defaults: { format: 'josn' } do

namespace :api, defaults: { format: 'json' } do