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 |
# File 'lib/action_controller/metal/head.rb', line 19 def head(status, = {}) , status = status, nil if status.is_a?(Hash) status ||= .delete(: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 if self.response else headers.delete('Content-Type') headers.delete('Content-Length') end true end |