我想要一个Rails控制器(实际上所有这些都是一个API)来始终呈现JSON。
我不希望Rails返回“找不到路由”,或者尝试失败并找不到HTML模板,或者返回406。我只希望它自动且始终呈现JSON,例如从RABL或JBuilder视图。
这可能吗?相关问题似乎具有上述缺点。
您可以before_filter在控制器中添加,以将请求格式设置为json:
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,例如:
format
request.format
def set_default_response_format request.format = :json unless params[:format] end