diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2007-11-18 22:01:33 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2007-11-18 22:01:33 +0000 |
commit | a76490d91758e775dc4facd8a3b577a60afc175e (patch) | |
tree | 90b610e47333e864d0f80e8f8ac7d7996ae610de | |
parent | 713ca5196d9bc2f005abedf6de416a8e717e41cc (diff) | |
download | rails-a76490d91758e775dc4facd8a3b577a60afc175e.tar.gz rails-a76490d91758e775dc4facd8a3b577a60afc175e.tar.bz2 rails-a76490d91758e775dc4facd8a3b577a60afc175e.zip |
Fixed that partial rendering should look at the type of the first render to determine its own type if no other clues are available (like when using text.plain.erb as the extension in AM) (closes #10130) [java] Fixed that partials would be broken when using text.plain.erb as the extension #10130 [java]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8166 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionmailer/CHANGELOG | 2 | ||||
-rw-r--r-- | actionmailer/test/mail_render_test.rb | 11 | ||||
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/base.rb | 12 |
4 files changed, 25 insertions, 2 deletions
diff --git a/actionmailer/CHANGELOG b/actionmailer/CHANGELOG index a385b96a62..09ca77ac17 100644 --- a/actionmailer/CHANGELOG +++ b/actionmailer/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed that partials would be broken when using text.plain.erb as the extension #10130 [java] + * Update README to use new smtp settings configuration API. Closes #10060 [psq] * Allow ActionMailer subclasses to individually set their delivery method (so two subclasses can have different delivery methods) #10033 [zdennis] diff --git a/actionmailer/test/mail_render_test.rb b/actionmailer/test/mail_render_test.rb index d6ee21a8b9..0bd5eafd59 100644 --- a/actionmailer/test/mail_render_test.rb +++ b/actionmailer/test/mail_render_test.rb @@ -20,6 +20,12 @@ class RenderMailer < ActionMailer::Base subject "rendering rxml template" from "tester@example.com" end + + def included_subtemplate(recipient) + recipients recipient + subject "Including another template in the one being rendered" + from "tester@example.com" + end def initialize_defaults(method_name) super @@ -70,6 +76,11 @@ class RenderHelperTest < Test::Unit::TestCase mail = RenderMailer.deliver_rxml_template(@recipient) assert_equal "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<test/>", mail.body.strip end + + def test_included_subtemplate + mail = RenderMailer.deliver_included_subtemplate(@recipient) + assert_equal "Hey Ho, let's go!", mail.body.strip + end end class FirstSecondHelperTest < Test::Unit::TestCase diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 30367bebc0..f6d0a8be81 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed that partial rendering should look at the type of the first render to determine its own type if no other clues are available (like when using text.plain.erb as the extension in AM) #10130 [java] + * Fixed that has_many :through associations should render as collections too #9051 [mathie/danger] * Added :mouseover short-cut to AssetTagHelper#image_tag for doing easy image swaps #6893 [joost] diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index 40d7c11509..81a8299e91 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -287,7 +287,7 @@ module ActionView #:nodoc: raise ActionViewError, "No #{template_handler_preferences.to_sentence} template found for #{template_path} in #{view_paths.inspect}" end template_file_name = full_template_path(template_path, template_extension) - template_extension = template_extension.gsub(/^\w+\./, '') # strip off any formats + template_extension = template_extension.gsub(/^.+\./, '') # strip off any formats end else template_file_name = template_path @@ -490,7 +490,9 @@ module ActionView #:nodoc: # Determines the template's file extension, such as rhtml, rxml, or rjs. def find_template_extension_for(template_path) - find_template_extension_from_handler(template_path, true) || find_template_extension_from_handler(template_path) + find_template_extension_from_handler(template_path, true) || + find_template_extension_from_handler(template_path) || + find_template_extension_from_first_render() end def find_template_extension_from_handler(template_path, formatted = nil) @@ -511,6 +513,12 @@ module ActionView #:nodoc: end nil end + + # Determine the template extension from the <tt>@first_render</tt> filename + def find_template_extension_from_first_render + extension = @first_render.to_s.sub /^\w+\.?/, '' + extension.blank? ? nil : extension + end # This method reads a template file. def read_template_file(template_path, extension) |