Revert "Revert "Merge pull request #16888 from jejacks0n/render_template""

This reverts commit 585e75696b.
This commit is contained in:
Godfrey Chan 2014-09-26 00:07:07 +09:00
parent b008e4bd8a
commit b5571b3ccf
4 changed files with 27 additions and 20 deletions

View File

@ -1,3 +1,12 @@
* Changed the meaning of `render "foo/bar"`.
Previously, calling `render "foo/bar"` in a controller action is equivalent
to `render file: "foo/bar"`. In Rails 4.2, this has been changed to mean
`render template: "foo/bar"` instead. If you need to render a file, please
change your code to use the explicit form (`render file: "foo/bar"`) instead.
*Jeremy Jackson*
* Add support for ARIA attributes in tags.
Example:

View File

@ -108,7 +108,7 @@ module ActionView
end
# Normalize args by converting render "foo" to render :action => "foo" and
# render "foo/bar" to render :file => "foo/bar".
# render "foo/bar" to render :template => "foo/bar".
# :api: private
def _normalize_args(action=nil, options={})
options = super(action, options)
@ -118,7 +118,7 @@ module ActionView
options = action
when String, Symbol
action = action.to_s
key = action.include?(?/) ? :file : :action
key = action.include?(?/) ? :template : :action
options[key] = action
else
options[:partial] = action

View File

@ -91,17 +91,17 @@ class TestController < ApplicationController
# :ported:
def render_hello_world
render :template => "test/hello_world"
render "test/hello_world"
end
def render_hello_world_with_last_modified_set
response.last_modified = Date.new(2008, 10, 10).to_time
render :template => "test/hello_world"
render "test/hello_world"
end
# :ported: compatibility
def render_hello_world_with_forward_slash
render :template => "/test/hello_world"
render "/test/hello_world"
end
# :ported:
@ -111,7 +111,7 @@ class TestController < ApplicationController
# :deprecated:
def render_template_in_top_directory_with_slash
render :template => '/shared'
render '/shared'
end
# :ported:
@ -159,13 +159,6 @@ class TestController < ApplicationController
render :file => path
end
# :ported:
def render_file_as_string_with_instance_variables
@secret = 'in the sauce'
path = File.expand_path(File.join(File.dirname(__FILE__), '../../fixtures/test/render_file_with_ivar'))
render path
end
# :ported:
def render_file_not_using_full_path
@secret = 'in the sauce'
@ -194,7 +187,7 @@ class TestController < ApplicationController
def render_file_as_string_with_locals
path = File.expand_path(File.join(File.dirname(__FILE__), '../../fixtures/test/render_file_with_locals'))
render path, :locals => {:secret => 'in the sauce'}
render file: path, :locals => {:secret => 'in the sauce'}
end
def accessing_request_in_template
@ -793,12 +786,6 @@ class RenderTest < ActionController::TestCase
assert_equal "Hello world!", @response.body
end
# :ported:
def test_render_file_as_string_with_instance_variables
get :render_file_as_string_with_instance_variables
assert_equal "The secret is in the sauce\n", @response.body
end
# :ported:
def test_render_file_not_using_full_path
get :render_file_not_using_full_path

View File

@ -149,6 +149,13 @@ individual components for new deprecations in this release.
The following changes may require immediate action upon upgrade.
### `render` with a String argument
Previously, calling `render "foo/bar"` in a controller action is equivalent to
`render file: "foo/bar"`. In Rails 4.2, this has been changed to mean `render template: "foo/bar"`
instead. If you need to render a file, please change your code to use the
explicit form (`render file: "foo/bar"`) instead.
### `respond_with` / class-level `respond_to`
`respond_with` and the corresponding class-level `respond_to` have been moved to
@ -499,6 +506,10 @@ Please refer to the [Changelog][action-view] for detailed changes.
### Notable changes
* `render "foo/bar"` now expands to `render template: "foo/bar"` instead of
`render file: "foo/bar"`.
([Pull Request](https://github.com/rails/rails/pull/16888))
* Introduced a `#{partial_name}_iteration` special local variable for use with
partials that are rendered with a collection. It provides access to the
current state of the iteration via the `#index`, `#size`, `#first?` and