Rails 返回 json

Posted Mr-Ran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 返回 json相关的知识,希望对你有一定的参考价值。

在写代码过程中,经常用到 ajax,那么我们也可能会返回 json 数据:

render json: { success: true, ...}
或者
render json: { success: false, ...}

这样的代码如果每个都被 ajax 调用都方法都写一遍都话会很冗余,那么我们可以在 Controller 文件夹下新建 concerns 文件夹,里面新建 rendering_helper.rb 文件。

rendering_helper.rb:

module RenderingHelper
  extend ActiveSupport::Concern

  private

  # 刷新通过 ajax 调用方法的当前页面
  def render_turbolinks_reload
    render js: ‘Turbolinks.reload()‘
  end

  def render_ajax_success(data = {})
    render json: data.merge(success: true)
  end

  def render_ajax_failure(data = {})
    render json: data.merge(success: false)
  end
end

然后我们在 application_controller.rb 中引用,就可以在继承 ApplicationController 的子类中直接调用下面的方法。

class ApplicationController < ActionController::Base
  include RenderingHelper
end

以上是关于Rails 返回 json的主要内容,如果未能解决你的问题,请参考以下文章

Rails:如果表单返回验证错误,则保持 JSON 表单字段填充

API Rails 上的获取请求不返回 json

Rails - 格式和渲染 - 它们是如何工作的?

Rails 5.2 API - 在JSON中返回枚举值

带有响应方法调用的键的 Rails json

Rails 为 json api 请求返回不正确的 MIME 类型(仅在测试中)