aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionview/CHANGELOG.md5
-rw-r--r--actionview/lib/action_view/renderer/template_renderer.rb2
-rw-r--r--actionview/test/template/render_test.rb5
-rw-r--r--activerecord/lib/active_record/relation/calculations.rb15
4 files changed, 21 insertions, 6 deletions
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md
index 2981e76ec5..c5bb8fe627 100644
--- a/actionview/CHANGELOG.md
+++ b/actionview/CHANGELOG.md
@@ -1,3 +1,8 @@
+* Fix default rendered format problem when calling `render` without :content_type option.
+ It should return :html. Fix #11393.
+
+ *Gleb Mazovetskiy* *Oleg* *kennyj*
+
* Fix `link_to` with block and url hashes.
Before:
diff --git a/actionview/lib/action_view/renderer/template_renderer.rb b/actionview/lib/action_view/renderer/template_renderer.rb
index 4d5c5db80c..668831dff3 100644
--- a/actionview/lib/action_view/renderer/template_renderer.rb
+++ b/actionview/lib/action_view/renderer/template_renderer.rb
@@ -11,7 +11,7 @@ module ActionView
prepend_formats(template.formats)
unless context.rendered_format
- context.rendered_format = template.formats.first || formats.last
+ context.rendered_format = template.formats.first || formats.first
end
render_template(template, options[:layout], options[:locals])
diff --git a/actionview/test/template/render_test.rb b/actionview/test/template/render_test.rb
index 8cffe73cce..928dfb092d 100644
--- a/actionview/test/template/render_test.rb
+++ b/actionview/test/template/render_test.rb
@@ -41,6 +41,11 @@ module RenderTestCases
assert_match "<error>No Comment</error>", @view.render(:template => "comments/empty", :formats => [:xml])
end
+ def test_rendered_format_without_format
+ @view.render(:inline => "test")
+ assert_equal :html, @view.lookup_context.rendered_format
+ end
+
def test_render_partial_implicitly_use_format_of_the_rendered_template
@view.lookup_context.formats = [:json]
assert_equal "Hello world", @view.render(:template => "test/one", :formats => [:html])
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index 3b24ed6754..52a538e5b5 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -189,11 +189,7 @@ module ActiveRecord
distinct = self.distinct_value
if operation == "count"
- if select_values.present?
- column_name ||= select_values.join(", ")
- else
- column_name ||= :all
- end
+ column_name ||= select_for_count
unless arel.ast.grep(Arel::Nodes::OuterJoin).empty?
distinct = true
@@ -361,6 +357,15 @@ module ActiveRecord
column ? column.type_cast(value) : value
end
+ # TODO: refactor to allow non-string `select_values` (eg. Arel nodes).
+ def select_for_count
+ if select_values.present?
+ select_values.join(", ")
+ else
+ :all
+ end
+ end
+
def build_count_subquery(relation, column_name, distinct)
column_alias = Arel.sql('count_column')
subquery_alias = Arel.sql('subquery_for_count')