Module: ActionController::Head
- Included in:
- ConditionalGet
- Defined in:
- lib/action_controller/metal/head.rb
Instance Method Summary collapse
-
#head(status, options = {}) ⇒ Object
Returns a response that has no content (merely headers).
Instance Method Details
#head(status, options = {}) ⇒ Object
Returns a response that has no content (merely headers). The options argument is interpreted to be a hash of header names and values. This allows you to easily return a response that consists only of significant headers:
head :created, location: person_path(@person)
head :created, location: @person
It can also be used to return exceptional conditions:
return head(:method_not_allowed) unless request.post?
return head(:bad_request) unless valid_request?
render
See Rack::Utils::SYMBOL_TO_STATUS_CODE for a full list of valid status
symbols.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/action_controller/metal/head.rb', line 19 def head(status, = {}) if status.is_a?(Hash) msg = status[:status] ? 'The :status option' : 'The implicit :ok status' , status = status, status.delete(:status) ActiveSupport::Deprecation.warn(<<-MSG.squish) #{msg} on `head` has been deprecated and will be removed in Rails 5.1. Please pass the status as a separate parameter before the options, instead. MSG end status ||= :ok location = .delete(:location) content_type = .delete(:content_type) .each do |key, value| headers[key.to_s.dasherize.split('-').each { |v| v[0] = v[0].chr.upcase }.join('-')] = value.to_s end self.status = status self.location = url_for(location) if location self.response_body = "" if include_content?(self.response_code) self.content_type = content_type || (Mime[formats.first] if formats) self.response.charset = false end true end |