小编典典

Rails 4-无论请求格式如何,如何呈现JSON?

json

我想要一个Rails控制器(实际上所有这些都是一个API)来始终呈现JSON。

我不希望Rails返回“找不到路由”,或者尝试失败并找不到HTML模板,或者返回406。我只希望它自动且始终呈现JSON,例如从RABL或JBuilder视图。

这可能吗?相关问题似乎具有上述缺点。


阅读 279

收藏
2020-07-27

共1个答案

小编典典

您可以before_filter在控制器中添加,以将请求格式设置为json

# app/controllers/foos_controller.rb

before_action :set_default_response_format

protected

def set_default_response_format
  request.format = :json
end

这会将所有响应格式设置为json。如果要允许其他格式,则可以format在设置时检查参数是否存在request.format,例如:

def set_default_response_format
  request.format = :json unless params[:format]
end
2020-07-27