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.
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 |
# File 'lib/action_controller/metal/head.rb', line 21 def head(status, = {}) if status.is_a?(Hash) raise ArgumentError, "#{status.inspect} is not a valid value for `status`." 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?(response_code) self.content_type = content_type || (Mime[formats.first] if formats) response.charset = false end true end |