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