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, without_modules
Methods inherited from ActionController::Metal
action, binary_params_for?, controller_name, #controller_name, #dispatch, dispatch, inherited, #initialize, make_response!, middleware, #params, #params=, #performed?, #reset_session, #response_body=, #set_request!, #set_response!, #to_a, #url_for, use
Methods included from ActionController::Testing::Functional
Methods inherited from AbstractController::Base
abstract!, action_methods, #action_methods, #action_name, #available_action?, clear_action_methods!, controller_path, #controller_path, #formats, inherited, internal_methods, method_added, #performed?, #process, #response_body, supports_path?
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, #class_methods, extended, #included
Constructor Details
This class inherits a constructor from ActionController::Metal
Instance Method Details
#index ⇒ Object
16 17 18 19 |
# File 'railties/lib/rails/mailers_controller.rb', line 16 def index @previews = ActionMailer::Preview.all @page_title = "Mailer Previews" end |
#preview ⇒ Object
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 |
# File 'railties/lib/rails/mailers_controller.rb', line 21 def preview if params[:path] == @preview.preview_name @page_title = "Mailer Previews for #{@preview.preview_name}" render action: "mailer" else @email_action = File.basename(params[:path]) if @preview.email_exists?(@email_action) @page_title = "Mailer Preview for #{@preview.preview_name}##{@email_action}" @email = @preview.call(@email_action, params) if params[:part] part_type = Mime::Type.lookup(params[:part]) if part = find_part(part_type) response.content_type = part_type render plain: part.respond_to?(:decoded) ? part.decoded : part else raise AbstractController::ActionNotFound, "Email part '#{part_type}' not found in #{@preview.name}##{@email_action}" end else @part = find_preferred_part(request.format, Mime[:html], Mime[:text]) render action: "email", layout: false, formats: [:html] end else raise AbstractController::ActionNotFound, "Email '#{@email_action}' not found in #{@preview.name}" end end end |