mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
raise an error if no implicit mailer template could be found
This commit is contained in:
parent
b046ea452c
commit
45b1045d16
11 changed files with 30 additions and 3 deletions
|
@ -1,3 +1,7 @@
|
|||
## Rails 4.0.0 (unreleased) ##
|
||||
|
||||
* Raise an `ActionView::MissingTemplate` exception when no implicit template could be found. *Damien Mathieu*
|
||||
|
||||
## Rails 3.2.5 (Jun 1, 2012) ##
|
||||
|
||||
* No changes.
|
||||
|
|
|
@ -184,6 +184,16 @@ module ActionMailer #:nodoc:
|
|||
# and the second being a <tt>application/pdf</tt> with a Base64 encoded copy of the file.pdf book
|
||||
# with the filename +free_book.pdf+.
|
||||
#
|
||||
# If you need to send attachments with no content, you need to create an empty view for it,
|
||||
# or add an empty body parameter like this:
|
||||
#
|
||||
# class ApplicationMailer < ActionMailer::Base
|
||||
# def welcome(recipient)
|
||||
# attachments['free_book.pdf'] = File.read('path/to/file.pdf')
|
||||
# mail(:to => recipient, :subject => "New account information", :body => "")
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# = Inline Attachments
|
||||
#
|
||||
# You can also specify that a file should be displayed inline with other HTML. This is useful
|
||||
|
@ -598,8 +608,10 @@ module ActionMailer #:nodoc:
|
|||
# end
|
||||
# end
|
||||
#
|
||||
# Will look for all templates at "app/views/notifier" with name "welcome". However, those
|
||||
# can be customized:
|
||||
# Will look for all templates at "app/views/notifier" with name "welcome".
|
||||
# If no welcome template exists, it will raise an ActionView::MissingTemplate error.
|
||||
#
|
||||
# However, those can be customized:
|
||||
#
|
||||
# mail(:template_path => 'notifications', :template_name => 'another')
|
||||
#
|
||||
|
@ -733,7 +745,11 @@ module ActionMailer #:nodoc:
|
|||
|
||||
def each_template(paths, name, &block) #:nodoc:
|
||||
templates = lookup_context.find_all(name, Array(paths))
|
||||
templates.uniq { |t| t.formats }.each(&block)
|
||||
if templates.empty?
|
||||
raise ActionView::MissingTemplate.new([paths], name, [paths], false, 'mailer')
|
||||
else
|
||||
templates.uniq { |t| t.formats }.each(&block)
|
||||
end
|
||||
end
|
||||
|
||||
def create_parts_from_responses(m, responses) #:nodoc:
|
||||
|
|
|
@ -433,6 +433,13 @@ class BaseTest < ActiveSupport::TestCase
|
|||
assert_equal("TEXT Implicit Multipart", mail.text_part.body.decoded)
|
||||
end
|
||||
|
||||
test "should raise if missing template in implicit render" do
|
||||
assert_raises ActionView::MissingTemplate do
|
||||
BaseMailer.implicit_different_template('missing_template').deliver
|
||||
end
|
||||
assert_equal(0, BaseMailer.deliveries.length)
|
||||
end
|
||||
|
||||
test "you can specify a different template for explicit render" do
|
||||
mail = BaseMailer.explicit_different_template('explicit_multipart_templates').deliver
|
||||
assert_equal("HTML Explicit Multipart Templates", mail.html_part.body.decoded)
|
||||
|
|
0
actionmailer/test/fixtures/base_mailer/attachment_with_hash.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_mailer/attachment_with_hash.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_mailer/attachment_with_hash_default_encoding.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_mailer/attachment_with_hash_default_encoding.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_mailer/welcome_with_headers.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_mailer/welcome_with_headers.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_test/after_filter_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_test/after_filter_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_test/before_filter_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_test/before_filter_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_test/default_inline_attachment_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/base_test/default_inline_attachment_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/mail_delivery_test/delivery_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/mail_delivery_test/delivery_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/proc_mailer/welcome.html.erb
vendored
Normal file
0
actionmailer/test/fixtures/proc_mailer/welcome.html.erb
vendored
Normal file
Loading…
Reference in a new issue