提交 a76490d9 编写于 作者: D David Heinemeier Hansson

Fixed that partial rendering should look at the type of the first render to...

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
上级 713ca519
*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]
......
......@@ -20,6 +20,12 @@ def rxml_template(recipient)
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 @@ def test_rxml_template
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
......
*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]
......
......@@ -287,7 +287,7 @@ def render_file(template_path, use_full_path = true, local_assigns = {}) #: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 @@ def extract_base_path_from(full_path)
# 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 @@ def find_template_extension_from_handler(template_path, formatted = nil)
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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册