在写代码过程中,经常用到 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