Zac*_*ach 20 json ruby-on-rails rabl ruby-on-rails-4
我想要一个Rails控制器(所有这些,实际上,它是一个API)来永远呈现JSON.
我不希望Rails返回"找不到路由",或者尝试找不到HTML模板,或者返回406.我只是希望它自动并始终呈现JSON,例如从RABL或JBuilder视图.
这可能吗?相关问题似乎有答案,具有上述缺点.
vee*_*vee 34
您可以before_filter在控制器中添加a 以将请求格式设置为json:
# app/controllers/foos_controller.rb
before_action :set_default_response_format
protected
def set_default_response_format
request.format = :json
end
Run Code Online (Sandbox Code Playgroud)
这将设置所有响应格式json.如果要允许其他格式,可以format在设置时检查参数是否存在request.format,例如:
def set_default_response_format
request.format = :json unless params[:format]
end
Run Code Online (Sandbox Code Playgroud)
Pel*_*leg 12
你可以使用format.any:
def action
respond_to do |format|
format.any { render json: your_json, content_type: 'application/json' }
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12032 次 |
| 最近记录: |