首页 > 解决方案 > 来自 rails API 的 json 请求返回错误代码

问题描述

我正在尝试让 rails 渲染一些 json。当我访问 mysite.com/v1/discussions.json 时,我希望看到数据库中所有讨论的打印件。但是,当我去那里时,我收到错误“{“status”:“error”,“code”:404,“message”:“Not found”}”。我不知道为什么我没有得到我期望的 json 响应。

我正在使用rails 5。

/controllers/api/v1/discussions_controller.rb

module Api
    module V1
        class DiscussionsController < ApplicationController
            respond_to :json

            def index
                respond_with Discussion.all
            end

            def show
                respond_with Discussion.find(params[:id])
            end

            def create
                @discussion = Discussion.new(discussion_params)

                @discussion.save
                render json: @discussion, status: :created
            end

            def update
                respond_with Discussion.update(params[:id], params[:discussion])
            end

            def destroy
                @discussion = Discussion.where(id: params[:id]).first

                if @discussion.destroy
                head(:ok)
                else
                head(:unprocessable_entity)
                end
            end


            private
            def discussion_params
              params.require(:discussion).permit(:title, :user_id, :content, :channel_id, :host_stance, :live, :archive, :private, :tag1, :tag2, :tag3, :tag4, :opponent_stance, :against, :competitive )
            end

        end
    end
end

/config/routes.rb

  namespace :api, defaults: {format: 'json'} do
    namespace :v1 do
      resources :discussions
      resources :users
      resources :sessions, only: [:create, :destroy]
    end
  end

/controllers/api_controller.rb

class ApiController < ApplicationController 
  skip_before_action :verify_authenticity_token
end

标签: ruby-on-rails

解决方案


推荐阅读