diff options
author | Peter Schilling <peter@peterschilling.org> | 2016-09-30 10:55:38 -0700 |
---|---|---|
committer | Peter Schilling <peter@peterschilling.org> | 2016-10-02 00:21:17 -0700 |
commit | f9960f2d74b510e0d994d49377cec36301f7e7f0 (patch) | |
tree | 82f369d688faafaaeaa559a6847dc6fee3edec5c /actionview/CHANGELOG.md | |
parent | 72f97e281059bc983eef5bc8915e53249c623dff (diff) | |
download | rails-f9960f2d74b510e0d994d49377cec36301f7e7f0.tar.gz rails-f9960f2d74b510e0d994d49377cec36301f7e7f0.tar.bz2 rails-f9960f2d74b510e0d994d49377cec36301f7e7f0.zip |
Change render to support any hash keys in locals
this lets you pass ruby keywords to templates:
<%= render 'example', class: "cool" %>
<%= render 'example', "spaces are" => "a-ok" %>
<%= render 'example', Foo: "bar" %>
Previously you'd see confusing syntax errors like this:
SyntaxError (.../_example.html.erb:1: syntax error, unexpected '='
Now you can reference invalid identifiers through local_assigns.
If you try to use an invalid keyword (e.g. class) in your template, you
get a syntax error on the line where you use it.
Diffstat (limited to 'actionview/CHANGELOG.md')
-rw-r--r-- | actionview/CHANGELOG.md | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md index 8bd4e1e56c..e93745c3bf 100644 --- a/actionview/CHANGELOG.md +++ b/actionview/CHANGELOG.md @@ -1,3 +1,21 @@ +* Render now accepts any keys for locals, including reserved words + + Only locals with valid variable names get set directly. Others + will still be available in local_assigns. + + Example of render with reserved words: + + ```erb + <%= render "example", class: "text-center", message: "Hello world!" %> + + <!-- _example.html.erb: --> + <%= tag.div class: local_assigns[:class] do %> + <p><%= message %></p> + <% end %> + ``` + + *Peter Schilling*, *Matthew Draper* + * Show cache hits and misses when rendering partials. Partials using the `cache` helper will show whether a render hit or missed |