Module: ActionController::ForceSSL::ClassMethods

Defined in:
lib/action_controller/metal/force_ssl.rb

Instance Method Summary collapse

Instance Method Details

#force_ssl(options = {}) ⇒ Object

Force the request to this particular controller or specified actions to be under HTTPS protocol.

Note that this method will not be effective on development environment.

Options

  • only - The callback should be run only for this action

  • except - The callback should be run for all actions except this action



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/action_controller/metal/force_ssl.rb', line 26

def force_ssl(options = {})
  host = options.delete(:host)
  before_filter(options) do
    if !request.ssl? && !Rails.env.development?
      redirect_options = {:protocol => 'https://', :status => :moved_permanently}
      redirect_options.merge!(:host => host) if host
      redirect_options.merge!(:params => request.query_parameters)
      redirect_to redirect_options
    end
  end
end