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

相关推荐