Module: ActionController::MimeResponds::ClassMethods

Defined in:
actionpack/lib/action_controller/metal/mime_responds.rb

Instance Method Summary collapse

Instance Method Details

#clear_respond_toObject

Clear all mime types in respond_to.


55
56
57
# File 'actionpack/lib/action_controller/metal/mime_responds.rb', line 55

def clear_respond_to
  self.mimes_for_respond_to = Hash.new.freeze
end

#respond_to(*mimes) ⇒ Object

Defines mime types that are rendered by default when invoking respond_with.

respond_to :html, :xml, :json

Specifies that all actions in the controller respond to requests for :html, :xml and :json.

To specify on per-action basis, use :only and :except with an array of actions or a single action:

respond_to :html
respond_to :xml, :json, except: [ :edit ]

This specifies that all actions respond to :html and all actions except :edit respond to :xml and :json.

respond_to :json, only: :create

This specifies that the :create action and no other responds to :json.


37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'actionpack/lib/action_controller/metal/mime_responds.rb', line 37

def respond_to(*mimes)
  options = mimes.extract_options!

  only_actions   = Array(options.delete(:only)).map(&:to_s)
  except_actions = Array(options.delete(:except)).map(&:to_s)

  new = mimes_for_respond_to.dup
  mimes.each do |mime|
    mime = mime.to_sym
    new[mime]          = {}
    new[mime][:only]   = only_actions   unless only_actions.empty?
    new[mime][:except] = except_actions unless except_actions.empty?
  end
  self.mimes_for_respond_to = new.freeze
end