以json格式响应所有格式请求

时间:2016-06-09 01:23:57

标签: ruby-on-rails ruby json

我在Ruby on Rails上实现Rest API。所以我想以json格式回复所有请求。我做了这个:

include ActionController::MimeResponds


before_filter :force_json

def force_json
  response.format = "json"
  #also tried
  # response.content_type = Mime[:json]
end

这两种方式都没有奏效。它给了我一个错误的html页面。 还有一种方法可以为整个api而不是每个类实现这个吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

如果您希望它在应用程序范围内发生,您可以在应用程序控制器中执行类似的操作。

class ApplicationController < ActionController::Base
  before_action :force_json

  def force_json
     request.format = :json
  end
end

答案 1 :(得分:0)

如果您使用responders gem,则可以在班级顶部定义:

class PostsController < ApplicationController
  respond_to :json
  ...

然后此控制器将默认使用JSON进行响应。