Class: Rails::MailersController
- Inherits:
-
ApplicationController
- Object
- AbstractController::Base
- ActionController::Metal
- ActionController::Base
- ApplicationController
- Rails::MailersController
- Defined in:
- railties/lib/rails/mailers_controller.rb
Overview
:nodoc:
Constant Summary
Constants inherited from ActionController::Base
ActionController::Base::MODULES, ActionController::Base::PROTECTED_IVARS
Instance Method Summary collapse
Methods inherited from ActionController::Base
#_protected_ivars, protected_instance_variables, without_modules
Methods inherited from ActionController::Metal
#_status_code, action, call, #content_type, #content_type=, controller_name, #controller_name, #dispatch, #env, inherited, #initialize, #location, #location=, middleware, #params, #params=, #performed?, #response_body=, #status, #status=, #to_a, #url_for, use
Methods inherited from AbstractController::Base
abstract!, action_methods, #action_methods, #available_action?, clear_action_methods!, #controller_path, controller_path, hidden_actions, inherited, internal_methods, method_added, #process
Methods included from ActiveSupport::DescendantsTracker
clear, descendants, #descendants, #direct_descendants, direct_descendants, #inherited, store_inherited
Methods included from ActiveSupport::Configurable
Methods included from ActiveSupport::Concern
#append_features, extended, #included
Constructor Details
This class inherits a constructor from ActionController::Metal
Instance Method Details
#index ⇒ Object
9 10 11 12 |
# File 'railties/lib/rails/mailers_controller.rb', line 9 def index @previews = ActionMailer::Preview.all @page_title = "Mailer Previews" end |
#preview ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'railties/lib/rails/mailers_controller.rb', line 14 def preview if params[:path] == @preview.preview_name @page_title = "Mailer Previews for #{@preview.preview_name}" render action: 'mailer' else email = File.basename(params[:path]) if @preview.email_exists?(email) @email = @preview.call(email) if params[:part] part_type = Mime::Type.lookup(params[:part]) if part = find_part(part_type) response.content_type = part_type render text: part.respond_to?(:decoded) ? part.decoded : part else raise AbstractController::ActionNotFound, "Email part '#{part_type}' not found in #{@preview.name}##{email}" end else @part = find_preferred_part(request.format, Mime::HTML, Mime::TEXT) render action: 'email', layout: false, formats: %w[html] end else raise AbstractController::ActionNotFound, "Email '#{email}' not found in #{@preview.name}" end end end |