admins: modify base render helper

dev_unstable^2
p31729568 6 years ago
parent 6b5e333442
commit dec0b4d16d

@ -1,36 +1,34 @@
module Admins::RenderHelper module Admins::RenderHelper
extend ActiveSupport::Concern extend ActiveSupport::Concern
def render_by_format(hash)
format = request.format.symbol
hash.key?(format) ? hash[format].call : hash[:html].call
end
def render_forbidden def render_forbidden
respond_to do |format| render_by_format(html: -> { redirect_to '/403' },
format.html { redirect_to '/403' } json: -> { render status: 403, json: { messages: I18n.t('error.forbidden') } } )
format.json { super }
end
end end
def render_not_found def render_not_found
respond_to do |format| render_by_format(html: -> { render 'admins/shared/404' },
format.html { render 'admins/shared/404' } js: -> { render_js_error('资源未找到') },
format.js { render_js_error('资源未找到') } json: -> { render status: 404, json: { message: '资源未找到' } })
format.json { render status: 404, json: { message: '资源未找到' } }
end
end end
def render_unprocessable_entity(message) def render_unprocessable_entity(message)
respond_to do |format| render_by_format(html: -> { render 'admins/shared/422' },
format.html { render 'admins/shared/422' } js: -> { render_js_error(message) },
format.js { render_js_error(message) } json: -> { render status: 422, json: { message: message } })
format.json { render status: 422, json: { message: message } }
end
end end
alias_method :render_error, :render_unprocessable_entity alias_method :render_error, :render_unprocessable_entity
def internal_server_error(message = '系统错误') def internal_server_error(message = '系统错误')
respond_to do |format| @message = message
format.html { render partail: 'admins/shared/500', locals: { message: message } } render_by_format(html: -> { render 'admins/shared/500' },
format.js { render_js_error(message) } js: -> { render_js_error(message) },
format.json { render status: 500, json: { message: message } } json: -> { render status: 500, json: { message: message } })
end
end end
def render_js_template(template, **opts) def render_js_template(template, **opts)

@ -2,5 +2,5 @@
<div class="global-error-code"> <div class="global-error-code">
<span>500</span> <span>500</span>
</div> </div>
<div class="global-error-text"><%= message %></div> <div class="global-error-text"><%= @message %></div>
</div> </div>
Loading…
Cancel
Save