Rails 4 - Respond only to JSON and not HTML

前端 未结 10 1196
栀梦
栀梦 2020-12-08 02:59

I\'m trying to build an API in rails 4, and am having an issue where rails returns a 500 error instead of a 406 when using respond_to :json and trying to access

10条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-08 03:12

    I believe there are 2 parts here:
    1) json only requests in rails
    2) json only responses in rails

    1) Configure your application controller to ensure json requests only

    # app/controller/application_controller.rb  
    before_action :ensure_json_request  
    
    def ensure_json_request  
      return if request.format == :json
      render :nothing => true, :status => 406  
    end  
    

    2) Configure your Rails API routes to ensure json responses only

    # config/routes.rb  
    MyApp::Application.routes.draw do  
      namespace :api, constraints: { format: 'json' } do  
        namespace :v1 do  
          resources :posts  
        end  
      end  
    end  
    

提交回复
热议问题