Sha256: 3bc6a8d7fc43b129d8011286dae1751efbbec1729c1b030af09a7c7c7fc53555
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
module Customs module Statuses def self.included base base.class_attribute :navigational_formats base.navigational_formats = [:html] end { :unauthorized => 401, :forbidden => 403, :not_found => 404, :not_acceptable => 406, :unprocessable => 422 }.each do |method, code| define_method method do render options_for_status_code(code) false end end def access_denied return unauthorized if self.respond_to?(:current_user) && !current_user forbidden end def unprocessable *args options = args.extract_options! respond_to do |format| format.any *navigational_formats do action = options.delete(:action) action ||= case params[:action] when 'update' then 'edit' when 'create' then 'new' else raise "Unknown unprocessable action" end render :status => 422, :action => action end format.all { render :status => 422 } end end def options_for_status_code code { :status => code, :template => template_for_status_code(code) } end def template_for_status_code code "customs/#{code}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
customs-1.1.0 | lib/customs/statuses.rb |