diff --git a/actionpack/lib/action_view/paths.rb b/actionpack/lib/action_view/paths.rb index c7d6fd696ad4..b487bd1aa7e7 100644 --- a/actionpack/lib/action_view/paths.rb +++ b/actionpack/lib/action_view/paths.rb @@ -50,6 +50,8 @@ def find_template(original_template_path, format = nil) elsif template = load_path[template_path] return template # Try to find html version if the format is javascript + elsif format == :js && template = load_path["#{template_path}.#{I18n.locale}.html"] + return template elsif format == :js && template = load_path["#{template_path}.html"] return template end diff --git a/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb b/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb new file mode 100644 index 000000000000..0740b2d07c77 --- /dev/null +++ b/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb @@ -0,0 +1 @@ +Hey HTML! diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index 5586434cb69b..9db62d9c23e1 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -44,6 +44,25 @@ def test_render_file_with_dashed_locale I18n.locale = old_locale end + def test_render_implicit_html_template_from_xhr_request + old_format = @view.template_format + @view.template_format = :js + assert_equal "Hello HTML!", @view.render(:file => "test/render_implicit_html_template_from_xhr_request") + ensure + @view.template_format = old_format + end + + def test_render_implicit_html_template_from_xhr_request_with_localization + old_locale = I18n.locale + old_format = @view.template_format + I18n.locale = :da + @view.template_format = :js + assert_equal "Hey HTML!\n", @view.render(:file => "test/render_implicit_html_template_from_xhr_request") + ensure + I18n.locale = old_locale + @view.template_format = old_format + end + def test_render_file_at_top_level assert_equal 'Elastica', @view.render(:file => '/shared') end