Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 6335 lines (3647 sloc) 318.787 kB
34ad69a @vatrai changelog entry for deprecated ActionController::Integration, ActionC…
vatrai authored
1 ## Rails 4.0.0 (unreleased) ##
e2cc653 @josevalim Do not deprecate performed.
josevalim authored
2
0b11dbe @spastorino Add 'X-Frame-Options' => 'SAMEORIGIN' and 'X-XSS-Protection' => '1; m…
spastorino authored
3 * Add 'X-Frame-Options' => 'SAMEORIGIN' and
4 'X-XSS-Protection' => '1; mode=block'
5 as default headers.
6
7 *Egor Homakov*
8
b540f4c @dhh Allow data attributes to be set as a first-level option for form_for,…
dhh authored
9 * Allow data attributes to be set as a first-level option for form_for, so you can write `form_for @record, data: { behavior: 'autosave' }` instead of `form_for @record, html: { data: { behavior: 'autosave' } }` *DHH*
10
5d15287 @rafaelfranca Deprecate `button_to_function` and `link_to_function` helpers.
rafaelfranca authored
11 * Deprecate `button_to_function` and `link_to_function` helpers.
12
13 We recommend the use of Unobtrusive JavaScript instead. For example:
14
15 link_to "Greeting", "#", :class => "nav_link"
16
17 $(function() {
18 $('.nav_link').click(function() {
19 // Some complex code
20
21 return false;
22 });
23 });
24
25 or
26
27 link_to "Greeting", '#', onclick: "alert('Hello world!'); return false", class: "nav_link"
28
29 for simple cases.
30
31 *Rafael Mendonça França*
32
02c9654 @sikachu Do not include application.js if it doesn't exists
sikachu authored
33 * `javascript_include_tag :all` will now not include `application.js` if the file does not exists. *Prem Sichanugrist*
34
39f4f28 @rafaelfranca Add CHANGELOG entry for 3c731a4ad62430100ba0b65bc966aa6dc6280c5f
rafaelfranca authored
35 * Send an empty response body when call `head` with status between 100 and 199, 204, 205 or 304.
36
37 *Armand du Plessis*
38
6beaafd @steveklabnik Changelog entry for Digest Auth fix (#2301)
steveklabnik authored
39 * Fixed issue with where Digest authentication would not work behind a proxy. *Arthur Smith*
40
0899be5 @tenderlove updated changelog
tenderlove authored
41 * Added ActionController::Live. Mix it in to your controller and you can
42 stream data to the client live. For example:
43
44 class FooController < ActionController::Base
45 include ActionController::Live
46
47 def index
48 100.times {
49 # Client will see this as it's written
50 response.stream.write "hello world\n"
51 sleep 1
52 }
53 response.stream.close
54 end
55 end
56
14a1df1 @spastorino Add CHANGELOG entry
spastorino authored
57 * Remove ActionDispatch::Head middleware in favor of Rack::Head. *Santiago Pastorino*
58
9345a11 Add back `:confirm` and change deprecation horizon to 4.1
Carlos Galdino + Rafael Mendonça França authored
59 * Deprecate `:confirm` in favor of `:data => { :confirm => "Text" }` option for `button_to`, `button_tag`, `image_submit_tag`, `link_to` and `submit_tag` helpers.
fb8a830 @carlosgaldino Remove `:confirm` in favor of `:data => { :confirm => 'Text' }` option
carlosgaldino authored
60
9345a11 Add back `:confirm` and change deprecation horizon to 4.1
Carlos Galdino + Rafael Mendonça França authored
61 *Carlos Galdino + Rafael Mendonça França*
fb8a830 @carlosgaldino Remove `:confirm` in favor of `:data => { :confirm => 'Text' }` option
carlosgaldino authored
62
3bbc2fb @carlosantoniodasilva Improve and fix AP changelog, sync release notes [ci skip]
carlosantoniodasilva authored
63 * Show routes in exception page while debugging a `RoutingError` in development. *Richard Schneeman and Mattt Thompson*
bbfd29a @schneems show routes while debugging added to changelog
schneems authored
64
238a425 @kennyj Added support add_flash_types
kennyj authored
65 * Add `ActionController::Flash.add_flash_types` method to allow people to register their own flash types. e.g.:
66
67 class ApplicationController
68 add_flash_types :error, :warning
69 end
70
3bbc2fb @carlosantoniodasilva Improve and fix AP changelog, sync release notes [ci skip]
carlosantoniodasilva authored
71 If you add the above code, you can use `<%= error %>` in an erb, and `redirect_to /foo, :error => 'message'` in a controller.
238a425 @kennyj Added support add_flash_types
kennyj authored
72
73 *kennyj*
74
ab72040 @carlosantoniodasilva Update AR and AP changelogs [ci skip]
carlosantoniodasilva authored
75 * Remove Active Model dependency from Action Pack. *Guillermo Iguaran*
76
c42a7a0 @kennyj Support unicode character route in config/routes.rb.
kennyj authored
77 * Support unicode characters in routes. Route will be automatically escaped, so instead of manually escaping:
78
79 get Rack::Utils.escape('こんにちは') => 'home#index'
80
81 You just have to write the unicode route:
82
83 get 'こんにちは' => 'home#index'
84
85 *kennyj*
86
bd8c0b8 @spastorino Return proper format on exceptions
spastorino authored
87 * Return proper format on exceptions. *Santiago Pastorino*
88
215d41d @carlosantoniodasilva Update 4.0 Release Notes with changelogs [ci skip]
carlosantoniodasilva authored
89 * Allow to use `mounted_helpers` (helpers for accessing mounted engines) in `ActionView::TestCase`. *Piotr Sarnacki*
60b4290 @drogus Allow to use mounted helpers in ActionView::TestCase
drogus authored
90
215d41d @carlosantoniodasilva Update 4.0 Release Notes with changelogs [ci skip]
carlosantoniodasilva authored
91 * Include `mounted_helpers` (helpers for accessing mounted engines) in `ActionDispatch::IntegrationTest` by default. *Piotr Sarnacki*
6525002 @drogus Include routes.mounted_helpers into integration tests
drogus authored
92
4791822 @jeremyf Extracted redirect logic from ActionController::Force::ClassMethods.f…
jeremyf authored
93 * Extracted redirect logic from `ActionController::ForceSSL::ClassMethods.force_ssl` into `ActionController::ForceSSL#force_ssl_redirect`
94
95 *Jeremy Friesen*
96
ab7a80e @lest accept a block in button_to helper
lest authored
97 * Make possible to use a block in button_to helper if button text is hard
98 to fit into the name parameter, e.g.:
99
100 <%= button_to [:make_happy, @user] do %>
101 Make happy <strong><%= @user.name %></strong>
102 <% end %>
103 # => "<form method="post" action="/users/1/make_happy" class="button_to">
104 # <div>
105 # <button type="submit">
106 # Make happy <strong>Name</strong>
107 # </button>
108 # </div>
109 # </form>"
110
111 *Sergey Nartimov*
112
e4aaac1 @drogus Fix sorting of helpers from different paths
drogus authored
113 * change a way of ordering helpers from several directories. Previously,
114 when loading helpers from multiple paths, all of the helpers files were
115 gathered into one array an then they were sorted. Helpers from different
116 directories should not be mixed before loading them to make loading more
117 predictable. The most common use case for such behavior is loading helpers
118 from engines. When you load helpers from application and engine Foo, in
119 that order, first rails will load all of the helpers from application,
120 sorted alphabetically and then it will do the same for Foo engine.
121
122 *Piotr Sarnacki*
123
215d41d @carlosantoniodasilva Update 4.0 Release Notes with changelogs [ci skip]
carlosantoniodasilva authored
124 * `truncate` now always returns an escaped HTML-safe string. The option `:escape` can be used as
2c2b0be @rafaelfranca Add `:escape` option for `truncate`
rafaelfranca authored
125 false to not escape the result.
126
127 *Li Ellis Gallardo + Rafael Mendonça França*
128
eedc513 @rafaelfranca Update the documentation and add CHANGELOG entry
rafaelfranca authored
129 * `truncate` now accepts a block to show extra content when the text is truncated. *Li Ellis Gallardo*
130
b02d14a @carlosgaldino Add several HTML5 input helpers
carlosgaldino authored
131 * Add `week_field`, `week_field_tag`, `month_field`, `month_field_tag`, `datetime_local_field`,
132 `datetime_local_field_tag`, `datetime_field` and `datetime_field_tag` helpers. *Carlos Galdino*
133
1ce4b5b @carlosgaldino Add HTML5 input[type="color"] helper
carlosgaldino authored
134 * Add `color_field` and `color_field_tag` helpers. *Carlos Galdino*
135
a78ee05 @rafaelfranca Fix CHANGELOG order and add a brief description of the changes in the
rafaelfranca authored
136 * `assert_generates`, `assert_recognizes`, and `assert_routing` all raise
137 `Assertion` instead of `RoutingError` *David Chelimsky*
138
3fc561a @pixeltrix Return 400 Bad Request for URL paths with invalid encoding.
pixeltrix authored
139 * URL path parameters with invalid encoding now raise ActionController::BadRequest. *Andrew White*
140
66eb3f0 @pixeltrix Raise ActionController::BadRequest for malformed parameter hashes.
pixeltrix authored
141 * Malformed query and request parameter hashes now raise ActionController::BadRequest. *Andrew White*
142
0e207a4 @carlosantoniodasilva Clarify grouped_options_for_select method API, add changelog entry
carlosantoniodasilva authored
143 * Add `divider` option to `grouped_options_for_select` to generate a separator
144 `optgroup` automatically, and deprecate `prompt` as third argument, in favor
145 of using an options hash. *Nicholas Greenfield*
146
446940c @soulim Add HTML5 input[type="time"] helper
soulim authored
147 * Add `time_field` and `time_field_tag` helpers which render an `input[type="time"]` tag. *Alex Soulim*
148
90ec863 @iHiD Removed old text_helper apis for highlight, excerpt and word_wrap
iHiD authored
149 * Removed old text_helper apis for highlight, excerpt and word_wrap *Jeremy Walker*
150
de29c30 @josevalim Update actionpack/CHANGELOG.md
josevalim authored
151 * Templates without a handler extension now raises a deprecation warning but still
152 defaults to ERb. In future releases, it will simply return the template contents. *Steve Klabnik*
153
0106e5f Add back `:disable_with` and change deprecation horizon to 4.1
Carlos Galdino + Rafael Mendonça França authored
154 * Deprecate `:disable_with` in favor of `:data => { :disable_with => "Text" }` option from `submit_tag`, `button_tag` and `button_to` helpers.
dd42e89 @josevalim Revert "Revert "Remove `:disable_with` in favor of `'data-disable-wit…
josevalim authored
155
156 *Carlos Galdino + Rafael Mendonça França*
157
71931e2 @rafaelfranca Remove `:mouseover` option from `image_tag` helper.
rafaelfranca authored
158 * Remove `:mouseover` option from `image_tag` helper. *Rafael Mendonça França*
159
160 * The `select` method (select tag) forces :include_blank if `required` is true and
2e9c7cd Changed the changelog and documentation about
Angelo Capilleri authored
161 `display size` is one and `multiple` is not true. *Angelo Capilleri*
162
9b4514c @pixeltrix Copy literal route constraints to defaults - fixes #3571 and #6224.
pixeltrix authored
163 * Copy literal route constraints to defaults so that url generation know about them.
164 The copied constraints are `:protocol`, `:subdomain`, `:domain`, `:host` and `:port`.
165
166 *Andrew White*
167
c02846f @josevalim Update actionpack/CHANGELOG.md
josevalim authored
168 * `respond_to` and `respond_with` now raise ActionController::UnknownFormat instead
169 of directly returning head 406. The exception is rescued and converted to 406
170 in the exception handling middleware. *Steven Soroka*
171
a544e00 @alindeman Allows assert_redirected_to to accept a regular expression
alindeman authored
172 * Allows `assert_redirected_to` to match against a regular expression. *Andy Lindeman*
173
36720af @spastorino Add CHANGELOG entry
spastorino authored
174 * Add backtrace to development routing error page. *Richard Schneeman*
175
4a2d53a @dmitriy-kiriyenko Replace boolean argument with an options hash.
dmitriy-kiriyenko authored
176 * Replace `include_seconds` boolean argument with `:include_seconds => true` option
177 in `distance_of_time_in_words` and `time_ago_in_words` signature. *Dmitriy Kiriyenko*
178
ab318d2 @carlosantoniodasilva Add changelog entry and some docs for collection + layout
carlosantoniodasilva authored
179 * Make current object and counter (when it applies) variables accessible when
180 rendering templates with :object / :collection. *Carlos Antonio da Silva*
181
c02846f @josevalim Update actionpack/CHANGELOG.md
josevalim authored
182 * JSONP now uses mimetype application/javascript instead of application/json. *omjokine*
65df4c5 @carlosantoniodasilva Add changelog entry for jsonp mimetype change, fix failing test
carlosantoniodasilva authored
183
e6ab0d5 @drogus Lazy load `default_form_builder` if it's passed as a string
drogus authored
184 * Allow to lazy load `default_form_builder` by passing a `String` instead of a constant. *Piotr Sarnacki*
185
5c18bdc @pixeltrix Merge session arg with existing session instead of overwriting
pixeltrix authored
186 * Session arguments passed to `process` calls in functional tests are now merged into
187 the existing session, whereas previously they would replace the existing session.
188 This change may break some existing tests if they are asserting the exact contents of
189 the session but should not break existing tests that only assert individual keys.
190
191 *Andrew White*
192
47cbfbb @jmbejar Add index method to FormBuilder. Useful when you use field_for and ne…
jmbejar authored
193 * Add `index` method to FormBuilder class. *Jorge Bejar*
194
1141f71 @spastorino Remove the leading \n added by textarea on assert_select
spastorino authored
195 * Remove the leading \n added by textarea on assert_select. *Santiago Pastorino*
196
128cfbd @drogus config.action_view.embed_authenticity_token_in_remote_forms is true b…
drogus authored
197 * Changed default value for `config.action_view.embed_authenticity_token_in_remote_forms`
198 to `false`. This change breaks remote forms that need to work also without javascript,
199 so if you need such behavior, you can either set it to `true` or explicitly pass
200 `:authenticity_token => true` in form options
201
da5a47e @rafaelfranca Update the guides and CHANGELOG
rafaelfranca authored
202 * Added ActionDispatch::SSL middleware that when included force all the requests to be under HTTPS protocol. *Rafael Mendonça França*
203
2731ffa @nashby fix typo in AP CHANGELOG [ci skip]
nashby authored
204 * Add `include_hidden` option to select tag. With `:include_hidden => false` select with `multiple` attribute doesn't generate hidden input with blank value. *Vasiliy Ermolovich*
54a75e1 @nashby add 'include_hidden' option to select tag, closes #5402
nashby authored
205
f12f071 @parndt Documented the removal of size from text_field based helpers and cols…
parndt authored
206 * Removed default `size` option from the `text_field`, `search_field`, `telephone_field`, `url_field`, `email_field` helpers. *Philip Arndt*
207
208 * Removed default `cols` and `rows` options from the `text_area` helper. *Philip Arndt*
209
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
210 * Adds support for layouts when rendering a partial with a given collection. *serabe*
6e0a763 @Serabe Adds line to change log and update documentation.
Serabe authored
211
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
212 * Allows the route helper `root` to take a string argument. For example, `root 'pages#main'`. *bcardarella*
cf75417 @vijaydev document the shortcut to the root route helper [ci skip]
vijaydev authored
213
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
214 * Forms of persisted records use always PATCH (via the `_method` hack). *fxn*
b7a0945 @fxn uses PATCH for the forms of persisted records, and routes PATCH and P…
fxn authored
215
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
216 * For resources, both PATCH and PUT are routed to the `update` action. *fxn*
b7a0945 @fxn uses PATCH for the forms of persisted records, and routes PATCH and P…
fxn authored
217
c04a084 @pixeltrix Update documentation for force_ssl - closes #5023.
pixeltrix authored
218 * Don't ignore `force_ssl` in development. This is a change of behavior - use a `:if` condition to recreate the old behavior.
219
220 class AccountsController < ApplicationController
221 force_ssl :if => :ssl_configured?
222
223 def ssl_configured?
224 !Rails.env.development?
225 end
226 end
227
228 *Pat Allan*
229
5497432 @fxn updates CHANGELOGs to register changes in 002713c
fxn authored
230 * Adds support for the PATCH verb:
231 * Request objects respond to `patch?`.
232 * Routes have a new `patch` method, and understand `:patch` in the
233 existing places where a verb is configured, like `:via`.
234 * New method `patch` available in functional tests.
235 * If `:patch` is the default verb for updates, edits are
236 tunneled as PATCH rather than as PUT, and routing acts accordingly.
237 * New method `patch_via_redirect` available in integration tests.
238
239 *dlee*
240
ad46884 @jeremy Integration tests support the OPTIONS http method
jeremy authored
241 * Integration tests support the `OPTIONS` method. *Jeremy Kemper*
242
ce51edb @fxn let expires_in accept a must_revalidate flag
fxn authored
243 * `expires_in` accepts a `must_revalidate` flag. If true, "must-revalidate"
244 is added to the Cache-Control header. *fxn*
245
d6b26a6 @exviva Add HTML5 input[type="date"] helper
exviva authored
246 * Add `date_field` and `date_field_tag` helpers which render an `input[type="date"]` tag *Olek Janiszewski*
247
bcd3b87 @sikachu Add *_url helpers to get the full assets URL
sikachu authored
248 * Adds `image_url`, `javascript_url`, `stylesheet_url`, `audio_url`, `video_url`, and `font_url`
249 to assets tag helper. These URL helpers will return the full path to your assets. This is useful
250 when you are going to reference this asset from external host. *Prem Sichanugrist*
251
3def1c8 @sikachu Fix override API response bug in respond_with
sikachu authored
252 * Default responder will now always use your overridden block in `respond_with` to render your response. *Prem Sichanugrist*
253
f506c80 @carlosantoniodasilva Add changelog, docs and guides entries
carlosantoniodasilva authored
254 * Allow `value_method` and `text_method` arguments from `collection_select` and
255 `options_from_collection_for_select` to receive an object that responds to `:call`,
256 such as a `proc`, to evaluate the option in the current element context. This works
257 the same way with `collection_radio_buttons` and `collection_check_boxes`.
258
259 *Carlos Antonio da Silva + Rafael Mendonça França*
260
261 * Add `collection_check_boxes` form helper, similar to `collection_select`:
262 Example:
263
264 collection_check_boxes :post, :author_ids, Author.all, :id, :name
265 # Outputs something like:
266 <input id="post_author_ids_1" name="post[author_ids][]" type="checkbox" value="1" />
5d8191a @rafaelfranca Remove default class to collection_check_boxes and
rafaelfranca authored
267 <label for="post_author_ids_1">D. Heinemeier Hansson</label>
f506c80 @carlosantoniodasilva Add changelog, docs and guides entries
carlosantoniodasilva authored
268 <input id="post_author_ids_2" name="post[author_ids][]" type="checkbox" value="2" />
5d8191a @rafaelfranca Remove default class to collection_check_boxes and
rafaelfranca authored
269 <label for="post_author_ids_2">D. Thomas</label>
f506c80 @carlosantoniodasilva Add changelog, docs and guides entries
carlosantoniodasilva authored
270 <input name="post[author_ids][]" type="hidden" value="" />
271
272 The label/check_box pairs can be customized with a block.
273
274 *Carlos Antonio da Silva + Rafael Mendonça França*
275
276 * Add `collection_radio_buttons` form helper, similar to `collection_select`:
277 Example:
278
279 collection_radio_buttons :post, :author_id, Author.all, :id, :name
280 # Outputs something like:
281 <input id="post_author_id_1" name="post[author_id]" type="radio" value="1" />
5d8191a @rafaelfranca Remove default class to collection_check_boxes and
rafaelfranca authored
282 <label for="post_author_id_1">D. Heinemeier Hansson</label>
f506c80 @carlosantoniodasilva Add changelog, docs and guides entries
carlosantoniodasilva authored
283 <input id="post_author_id_2" name="post[author_id]" type="radio" value="2" />
5d8191a @rafaelfranca Remove default class to collection_check_boxes and
rafaelfranca authored
284 <label for="post_author_id_2">D. Thomas</label>
f506c80 @carlosantoniodasilva Add changelog, docs and guides entries
carlosantoniodasilva authored
285
286 The label/radio_button pairs can be customized with a block.
287
288 *Carlos Antonio da Silva + Rafael Mendonça França*
289
3d10955 @carlosantoniodasilva Replicate :form html5 attribute to hidden field for check_box
carlosantoniodasilva authored
290 * check_box with `:form` html5 attribute will now replicate the `:form`
291 attribute to the hidden field as well. *Carlos Antonio da Silva*
292
a4c120f @dhh Do not include the authenticity token in forms where remote: true as …
dhh authored
293 * Turn off verbose mode of rack-cache, we still have X-Rack-Cache to
294 check that info. Closes #5245. *Santiago Pastorino*
295
b03e55d @carlosantoniodasilva Do not generate label for attribute when giving nil
carlosantoniodasilva authored
296 * `label` form helper accepts :for => nil to not generate the attribute. *Carlos Antonio da Silva*
297
01b4a7c @rafaelfranca No need to check html_safe? twice
rafaelfranca authored
298 * Add `:format` option to number_to_percentage *Rodrigo Flores*
299
f506c80 @carlosantoniodasilva Add changelog, docs and guides entries
carlosantoniodasilva authored
300 * Add `config.action_view.logger` to configure logger for ActionView. *Rafael Mendonça França*
5a6ea53 @rafaelfranca ActionView now has its own logger
rafaelfranca authored
301
34ad69a @vatrai changelog entry for deprecated ActionController::Integration, ActionC…
vatrai authored
302 * Deprecated ActionController::Integration in favour of ActionDispatch::Integration
303
304 * Deprecated ActionController::IntegrationTest in favour of ActionDispatch::IntegrationTest
305
306 * Deprecated ActionController::PerformanceTest in favour of ActionDispatch::PerformanceTest
307
308 * Deprecated ActionController::AbstractRequest in favour of ActionDispatch::Request
309
310 * Deprecated ActionController::Request in favour of ActionDispatch::Request
311
312 * Deprecated ActionController::AbstractResponse in favour of ActionDispatch::Response
313
314 * Deprecated ActionController::Response in favour of ActionDispatch::Response
315
316 * Deprecated ActionController::Routing in favour of ActionDispatch::Routing
317
9bd38f3 check_box helper with :disabled => true generates disabled hidden fie…
Tadas Tamošauskas authored
318 * check_box helper with :disabled => true will generate a disabled hidden field to conform with the HTML convention where disabled fields are not submitted with the form.
319 This is a behavior change, previously the hidden tag had a value of the disabled checkbox.
320 *Tadas Tamosauskas*
321
a5976cc @lucascaton Remove slash from favicon_link_tag method attribute
lucascaton authored
322 * `favicon_link_tag` helper will now use the favicon in app/assets by default. *Lucas Caton*
323
da5a47e @rafaelfranca Update the guides and CHANGELOG
rafaelfranca authored
324 * `ActionView::Helpers::TextHelper#highlight` now defaults to the
325 HTML5 `mark` element. *Brian Cardarella*
e4915e1 @bcardarella Highlight defaults to HTML5 `mark` element
bcardarella authored
326
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
327
3449b75 @rafaelfranca Sync CHANGLOG with the 3-2-stable branch
rafaelfranca authored
328 ## Rails 3.2.5 (Jun 1, 2012) ##
329
330 * No changes.
331
332
333 ## Rails 3.2.4 (May 31, 2012) ##
334
335 * Deprecate old APIs for highlight, excerpt and word_wrap *Jeremy Walker*
336
337 * Deprecate `:disable_with` in favor of `'data-disable-with'` option for `button_to`, `button_tag` and `submit_tag` helpers.
338
339 *Carlos Galdino + Rafael Mendonça França*
340
341 * Deprecate `:mouseover` option for `image_tag` helper. *Rafael Mendonça França*
342
343 * Deprecate `button_to_function` and `link_to_function` helpers. *Rafael Mendonça França*
344
345 * Don't break Haml with textarea newline fix. GH #393, #4000, #5190, #5191
346
347 * Fix options handling on labels. GH #2492, #5614
348
349 * Added config.action_view.embed_authenticity_token_in_remote_forms to deal
350 with regression from 16ee611fa
351
352 * Set rendered_format when doing render :inline. GH #5632
353
354 * Fix the redirect when it receive blocks with arity of 1. Closes #5677
355
356 * Strip [nil] from parameters hash. Thanks to Ben Murphy for
357 reporting this! CVE-2012-2660
358
359
3638881 @bsodmike Update Rails 3.2.3 release date in changelogs as March 30, 2012
bsodmike authored
360 ## Rails 3.2.3 (March 30, 2012) ##
8a714c4 @vijaydev fix incorrect changelog headings [ci skip].
vijaydev authored
361
805b15f @drogus Added config.action_view.embed_authenticity_token_in_remote_forms
drogus authored
362 * Add `config.action_view.embed_authenticity_token_in_remote_forms` (defaults to true) which allows to set if authenticity token will be included by default in remote forms. If you change it to false, you can still force authenticity token by passing `:authenticity_token => true` in form options *Piotr Sarnacki*
363
a4c120f @dhh Do not include the authenticity token in forms where remote: true as …
dhh authored
364 * Do not include the authenticity token in forms where remote: true as ajax forms use the meta-tag value *DHH*
365
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
366 * Upgrade rack-cache to 1.2. *José Valim*
367
368 * ActionController::SessionManagement is removed. *Santiago Pastorino*
8a714c4 @vijaydev fix incorrect changelog headings [ci skip].
vijaydev authored
369
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
370 * Since the router holds references to many parts of the system like engines, controllers and the application itself, inspecting the route set can actually be really slow, therefore we default alias inspect to to_s. *José Valim*
8a714c4 @vijaydev fix incorrect changelog headings [ci skip].
vijaydev authored
371
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
372 * Add a new line after the textarea opening tag. Closes #393 *Rafael Mendonça França*
8a714c4 @vijaydev fix incorrect changelog headings [ci skip].
vijaydev authored
373
ba35527 @vijaydev Minor changelog fixes [ci skip]
vijaydev authored
374 * Always pass a respond block from to responder. We should let the responder decide what to do with the given overridden response block, and not short circuit it. *Prem Sichanugrist*
8a714c4 @vijaydev fix incorrect changelog headings [ci skip].
vijaydev authored
375
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
376 * Fixes layout rendering regression from 3.2.2. *José Valim*
8a714c4 @vijaydev fix incorrect changelog headings [ci skip].
vijaydev authored
377
152a393 @pacoguzman Update changelogs with rails 3.0-stable branch info
pacoguzman authored
378
05c6caf @claudiob Add release dates to documentation
claudiob authored
379 ## Rails 3.2.2 (March 1, 2012) ##
152a393 @pacoguzman Update changelogs with rails 3.0-stable branch info
pacoguzman authored
380
381 * Format lookup for partials is derived from the format in which the template is being rendered. Closes #5025 part 2 *Santiago Pastorino*
382
383 * Use the right format when a partial is missing. Closes #5025. *Santiago Pastorino*
384
385 * Default responder will now always use your overridden block in `respond_with` to render your response. *Prem Sichanugrist*
386
387 * check_box helper with :disabled => true will generate a disabled hidden field to conform with the HTML convention where disabled fields are not submitted with the form.
388 This is a behavior change, previously the hidden tag had a value of the disabled checkbox.
389 *Tadas Tamosauskas*
390
391
392 ## Rails 3.2.1 (January 26, 2012) ##
393
394 * Documentation improvements.
395
396 * Allow `form.select` to accept ranges (regression). *Jeremy Walker*
397
398 * `datetime_select` works with -/+ infinity dates. *Joe Van Dyk*
399
400
6d426b1 @claudiob Add release date of Rails 3.2.0 to documentation
claudiob authored
401 ## Rails 3.2.0 (January 20, 2012) ##
c0d1f5f @josevalim Update actionpack/CHANGELOG.md
josevalim authored
402
96a817f @carlosantoniodasilva Update changelog
carlosantoniodasilva authored
403 * Add `config.action_dispatch.default_charset` to configure default charset for ActionDispatch::Response. *Carlos Antonio da Silva*
404
405 * Deprecate setting default charset at controller level, use the new `config.action_dispatch.default_charset` instead. *Carlos Antonio da Silva*
406
407 * Deprecate ActionController::UnknownAction in favour of AbstractController::ActionNotFound. *Carlos Antonio da Silva*
408
409 * Deprecate ActionController::DoubleRenderError in favour of AbstractController::DoubleRenderError. *Carlos Antonio da Silva*
410
411 * Deprecate method_missing handling for not found actions, use action_missing instead. *Carlos Antonio da Silva*
412
413 * Deprecate ActionController#rescue_action, ActionController#initialize_template_class, and ActionController#assign_shortcuts.
414 These methods were not being used internally anymore and are going to be removed in Rails 4. *Carlos Antonio da Silva*
415
29fdd8c @spastorino Use a BodyProxy instead of including a Module that responds to close.
spastorino authored
416 * Use a BodyProxy instead of including a Module that responds to
417 close. Closes #4441 if Active Record is disabled assets are delivered
418 correctly *Santiago Pastorino*
419
ad44952 @spastorino Add CHANGELOG entry
spastorino authored
420 * Rails initialization with initialize_on_precompile = false should set assets_dir *Santiago Pastorino*
421
439d340 @spastorino Add font_path helper method
spastorino authored
422 * Add font_path helper method *Santiago Pastorino*
423
c8dcc19 @spastorino Add CHANGELOG entry
spastorino authored
424 * Depends on rack ~> 1.4.0 *Santiago Pastorino*
425
f32247c @josevalim Update CHANGELOGs
josevalim authored
426 * Add :gzip option to `caches_page`. The default option can be configured globally using `page_cache_compression` *Andrey Sitnik*
427
6481bc5 @josevalim Update CHANGELOGs and guides.
josevalim authored
428 * The ShowExceptions middleware now accepts a exceptions application that is responsible to render an exception when the application fails. The application is invoked with a copy of the exception in `env["action_dispatch.exception"]` and with the PATH_INFO rewritten to the status code. *José Valim*
429
3f65e7f @wfarr Add button_tag support to ActionView::Helpers::FormBuilder.
wfarr authored
430 * Add `button_tag` support to ActionView::Helpers::FormBuilder.
431
432 This support mimics the default behavior of `submit_tag`.
433
434 Example:
435
436 <%= form_for @post do |f| %>
437 <%= f.button %>
438 <% end %>
439
96a817f @carlosantoniodasilva Update changelog
carlosantoniodasilva authored
440 * Date helpers accept a new option, `:use_two_digit_numbers = true`, that renders select boxes for months and days with a leading zero without changing the respective values.
dc43e40 @DevL Added :use_two_digit_numbers option [Lennart Fridén & Kim Persson]
DevL authored
441 For example, this is useful for displaying ISO8601-style dates such as '2011-08-01'. *Lennart Fridén and Kim Persson*
442
22a6079 @dhh Make ActiveSupport::Benchmarkable a default module for ActionControll…
dhh authored
443 * Make ActiveSupport::Benchmarkable a default module for ActionController::Base, so the #benchmark method is once again available in the controller context like it used to be *DHH*
444
5ad5215 @josevalim Deprecate implicit layout lookup in favor of inheriting the _layout c…
josevalim authored
445 * Deprecated implied layout lookup in controllers whose parent had a explicit layout set:
446
447 class ApplicationController
448 layout "application"
449 end
450
451 class PostsController < ApplicationController
452 end
453
454 In the example above, Posts controller will no longer automatically look up for a posts layout.
455
456 If you need this functionality you could either remove `layout "application"` from ApplicationController or explicitly set it to nil in PostsController. *José Valim*
457
18ceed2 @sikachu Allow layout fallback when using `layout` method
sikachu authored
458 * Rails will now use your default layout (such as "layouts/application") when you specify a layout with `:only` and `:except` condition, and those conditions fail. *Prem Sichanugrist*
459
460 For example, consider this snippet:
461
462 class CarsController
463 layout 'single_car', :only => :show
464 end
465
466 Rails will use 'layouts/single_car' when a request comes in `:show` action, and use 'layouts/application' (or 'layouts/cars', if exists) when a request comes in for any other actions.
467
e29773f @nashby form_for with +:as+ option uses "action_as" as css class and id
nashby authored
468 * form_for with +:as+ option uses "#{action}_#{as}" as css class and id:
469
470 Before:
471
472 form_for(@user, :as => 'client') # => "<form class="client_new">..."
473
474 Now:
475
476 form_for(@user, :as => 'client') # => "<form class="new_client">..."
477
478 *Vasiliy Ermolovich*
479
07f90f6 @josevalim Merge branch 'exceptions' with the following features:
josevalim authored
480 * Allow rescue responses to be configured through a railtie as in `config.action_dispatch.rescue_responses`. Please look at ActiveRecord::Railtie for an example *José Valim*
481
218c272 @dhh Allow fresh_when/stale? to take a record instead of an options hash […
dhh authored
482 * Allow fresh_when/stale? to take a record instead of an options hash *DHH*
483
1e51cd9 @josevalim Update CHANGELOG.
josevalim authored
484 * Assets should use the request protocol by default or default to relative if no request is available *Jonathan del Strother*
485
486 * Log "Filter chain halted as CALLBACKNAME rendered or redirected" every time a before callback halts *José Valim*
38ab982 @josevalim Log 'Filter chain halted as CALLBACKNAME rendered or redirected' ever…
josevalim authored
487
2559256 @nashby update CHANGELOG
nashby authored
488 * You can provide a namespace for your form to ensure uniqueness of id attributes on form elements.
489 The namespace attribute will be prefixed with underscore on the generate HTML id. *Vasiliy Ermolovich*
490
491 Example:
492
493 <%= form_for(@offer, :namespace => 'namespace') do |f| %>
494 <%= f.label :version, 'Version' %>:
495 <%= f.text_field :version %>
496 <% end %>
497
654df86 @josevalim Show detailed exceptions no longer returns true if the request is loc…
josevalim authored
498 * Refactor ActionDispatch::ShowExceptions. The controller is responsible for choosing to show exceptions when `consider_all_requests_local` is false.
3a1d519 @lest deprecation warning, changelog entry
lest authored
499
654df86 @josevalim Show detailed exceptions no longer returns true if the request is loc…
josevalim authored
500 It's possible to override `show_detailed_exceptions?` in controllers to specify which requests should provide debugging information on errors. The default value is now false, meaning local requests in production will no longer show the detailed exceptions page unless `show_detailed_exceptions?` is overridden and set to `request.local?`.
3a1d519 @lest deprecation warning, changelog entry
lest authored
501
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
502 * Responders now return 204 No Content for API requests without a response body (as in the new scaffold) *José Valim*
503
504 * Added ActionDispatch::RequestId middleware that'll make a unique X-Request-Id header available to the response and enables the ActionDispatch::Request#uuid method. This makes it easy to trace requests from end-to-end in the stack and to identify individual requests in mixed logs like Syslog *DHH*
505
506 * Limit the number of options for select_year to 1000.
507
508 Pass the :max_years_allowed option to set your own limit.
509
510 *Libo Cannici*
511
512 * Passing formats or handlers to render :template and friends is deprecated. For example: *Nick Sutterer & José Valim*
513
514 render :template => "foo.html.erb"
515
516 Instead, you can provide :handlers and :formats directly as option:
517 render :template => "foo", :formats => [:html, :js], :handlers => :erb
518
519 * Changed log level of warning for missing CSRF token from :debug to :warn. *Mike Dillon*
520
521 * content_tag_for and div_for can now take the collection of records. It will also yield the record as the first argument if you set a receiving argument in your block *Prem Sichanugrist*
522
523 So instead of having to do this:
524
525 @items.each do |item|
526 content_tag_for(:li, item) do
527 Title: <%= item.title %>
528 end
529 end
530
531 You can now do this:
532
533 content_tag_for(:li, @items) do |item|
534 Title: <%= item.title %>
535 end
536
537 * send_file now guess the mime type *Esad Hajdarevic*
538
539 * Mime type entries for PDF, ZIP and other formats were added *Esad Hajdarevic*
540
541 * Generate hidden input before select with :multiple option set to true.
542 This is useful when you rely on the fact that when no options is set,
543 the state of select will be sent to rails application. Without hidden field
544 nothing is sent according to HTML spec *Bogdan Gusiev*
545
546 * Refactor ActionController::TestCase cookies *Andrew White*
547
548 Assigning cookies for test cases should now use cookies[], e.g:
549
550 cookies[:email] = 'user@example.com'
551 get :index
552 assert_equal 'user@example.com', cookies[:email]
553
554 To clear the cookies, use clear, e.g:
555
556 cookies.clear
557 get :index
558 assert_nil cookies[:email]
559
560 We now no longer write out HTTP_COOKIE and the cookie jar is
561 persistent between requests so if you need to manipulate the environment
562 for your test you need to do it before the cookie jar is created.
563
677f968 Add information to the changelog about the changes to ActionControlle…
Jean-Francois Turcot authored
564 * ActionController::ParamsWrapper on ActiveRecord models now only wrap
565 attr_accessible attributes if they were set, if not, only the attributes
566 returned by the class method attribute_names will be wrapped. This fixes
567 the wrapping of nested attributes by adding them to attr_accessible.
568
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
569
05c6caf @claudiob Add release dates to documentation
claudiob authored
570 ## Rails 3.1.4 (March 1, 2012) ##
9be2353 @spastorino Sync AP CHANGELOG with 3-1-stable
spastorino authored
571
152a393 @pacoguzman Update changelogs with rails 3.0-stable branch info
pacoguzman authored
572 * Skip assets group in Gemfile and all assets configurations options
573 when the application is generated with --skip-sprockets option.
574
575 *Guillermo Iguaran*
576
577 * Use ProcessedAsset#pathname in Sprockets helpers when debugging is on. Closes #3333 #3348 #3361.
578
579 *Guillermo Iguaran*
580
9be2353 @spastorino Sync AP CHANGELOG with 3-1-stable
spastorino authored
581 * Allow to use asset_path on named_routes aliasing RailsHelper's
582 asset_path to path_to_asset *Adrian Pike*
583
152a393 @pacoguzman Update changelogs with rails 3.0-stable branch info
pacoguzman authored
584 * Assets should use the request protocol by default or default to relative if no request is available *Jonathan del Strother*
9be2353 @spastorino Sync AP CHANGELOG with 3-1-stable
spastorino authored
585
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
586
e634d25 @Karunakar Added the release dates for rails 3.1.1, rails 3.1.2, rails 3.1.3
Karunakar authored
587 ## Rails 3.1.3 (November 20, 2011) ##
603a679 @jonleighton Don't html-escape the :count option to translate if it's a Numeric. F…
jonleighton authored
588
152a393 @pacoguzman Update changelogs with rails 3.0-stable branch info
pacoguzman authored
589 * Downgrade sprockets to ~> 2.0.3. Using 2.1.0 caused regressions.
590
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
591 * Fix using `translate` helper with a html translation which uses the `:count` option for
603a679 @jonleighton Don't html-escape the :count option to translate if it's a Numeric. F…
jonleighton authored
592 pluralization.
593
594 *Jon Leighton*
595
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
596
e634d25 @Karunakar Added the release dates for rails 3.1.1, rails 3.1.2, rails 3.1.3
Karunakar authored
597 ## Rails 3.1.2 (November 18, 2011) ##
fc98811 @jonleighton Implement a workaround for a bug in ruby-1.9.3p0.
jonleighton authored
598
e8d57f3 @lest _html translation should escape interpolated arguments
lest authored
599 * Fix XSS security vulnerability in the `translate` helper method. When using interpolation
600 in combination with HTML-safe translations, the interpolated input would not get HTML
601 escaped. *GH 3664*
602
603 Before:
604
605 translate('foo_html', :something => '<script>') # => "...<script>..."
606
607 After:
608
609 translate('foo_html', :something => '<script>') # => "...&lt;script&gt;..."
610
611 *Sergey Nartimov*
612
ca3b468 @jonleighton Sync changelog entry
jonleighton authored
613 * Upgrade sprockets dependency to ~> 2.1.0
614
da02f79 @jonleighton Sync CHANGELOGs from 3-1-stable
jonleighton authored
615 * Ensure that the format isn't applied twice to the cache key, else it becomes impossible
616 to target with expire_action.
617
618 *Christopher Meiklejohn*
619
620 * Swallow error when can't unmarshall object from session.
621
622 *Bruno Zanchet*
623
fc98811 @jonleighton Implement a workaround for a bug in ruby-1.9.3p0.
jonleighton authored
624 * Implement a workaround for a bug in ruby-1.9.3p0 where an error would be raised
625 while attempting to convert a template from one encoding to another.
626
627 Please see http://redmine.ruby-lang.org/issues/5564 for details of the bug.
628
629 The workaround is to load all conversions into memory ahead of time, and will
630 only happen if the ruby version is *exactly* 1.9.3p0. The hope is obviously that
631 the underlying problem will be resolved in the next patchlevel release of
632 1.9.3.
633
634 *Jon Leighton*
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
635
da02f79 @jonleighton Sync CHANGELOGs from 3-1-stable
jonleighton authored
636 * Ensure users upgrading from 3.0.x to 3.1.x will properly upgrade their flash object in session (issues #3298 and #2509)
637
d804790 @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
638
e634d25 @Karunakar Added the release dates for rails 3.1.1, rails 3.1.2, rails 3.1.3
Karunakar authored
639 ## Rails 3.1.1 (October 07, 2011) ##
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
640
641 * javascript_path and stylesheet_path now refer to /assets if asset pipelining
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
642 is on. *Santiago Pastorino*
643
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
644 * button_to support form option. Now you're able to pass for example
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
645 'data-type' => 'json'. *ihower*
646
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
647 * image_path and image_tag should use /assets if asset pipelining is turned
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
648 on. Closes #3126 *Santiago Pastorino and christos*
649
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
650 * Avoid use of existing precompiled assets during rake assets:precompile run.
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
651 Closes #3119 *Guillermo Iguaran*
652
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
653 * Copy assets to nondigested filenames too *Santiago Pastorino*
654
655 * Give precedence to `config.digest = false` over the existence of
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
656 manifest.yml asset digests *christos*
657
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
658 * escape options for the stylesheet_link_tag method *Alexey Vakhov*
659
660 * Re-launch assets:precompile task using (Rake.)ruby instead of Kernel.exec so
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
661 it works on Windows *cablegram*
662
663 * env var passed to process shouldn't be modified in process method. *Santiago
664 Pastorino*
665
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
666 * `rake assets:precompile` loads the application but does not initialize
667 it.
668 To the app developer, this means configuration add in
669 config/initializers/* will not be executed.
670 Plugins developers need to special case their initializers that are
671 meant to be run in the assets group by adding :group => :assets. *José Valim*
672
673 * Sprockets uses config.assets.prefix for asset_path *asee*
674
675 * FileStore key_file_path properly limit filenames to 255 characters. *phuibonhoa*
676
677 * Fix Hash#to_query edge case with html_safe strings. *brainopia*
678
679 * Allow asset tag helper methods to accept :digest => false option in order to completely avoid the digest generation.
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
680 Useful for linking assets from static html files or from emails when the user could probably look at an older html email with an older asset. *Santiago Pastorino*
681
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
682 * Don't mount Sprockets server at config.assets.prefix if config.assets.compile is false. *Mark J. Titorenko*
683
684 * Set relative url root in assets when controller isn't available for Sprockets (eg. Sass files using asset_path). Fixes #2435 *Guillermo Iguaran*
685
686 * Fix basic auth credential generation to not make newlines. GH #2882
687
688 * Fixed the behavior of asset pipeline when config.assets.digest and config.assets.compile are false and requested asset isn't precompiled.
689 Before the requested asset were compiled anyway ignoring that the config.assets.compile flag is false. *Guillermo Iguaran*
690
691 * CookieJar is now Enumerable. Fixes #2795
692
693 * Fixed AssetNotPrecompiled error raised when rake assets:precompile is compiling certain .erb files. See GH #2763 #2765 #2805 *Guillermo Iguaran*
694
695 * Manifest is correctly placed in assets path when default assets prefix is changed. Fixes #2776 *Guillermo Iguaran*
696
697 * Fixed stylesheet_link_tag and javascript_include_tag to respect additional options passed by the users when debug is on. *Guillermo Iguaran*
698
699
700 ## Rails 3.1.0 (August 30, 2011) ##
701
702 * Param values are `paramified` in controller tests. *David Chelimsky*
703
704 * x_sendfile_header now defaults to nil and config/environments/production.rb doesn't set a particular value for it. This allows servers to set it through X-Sendfile-Type. *Santiago Pastorino*
705
706 * The submit form helper does not generate an id "object_name_id" anymore. *fbrusatti*
707
708 * Make sure respond_with with :js tries to render a template in all cases *José Valim*
709
710 * json_escape will now return a SafeBuffer string if it receives SafeBuffer string *tenderlove*
711
712 * Make sure escape_js returns SafeBuffer string if it receives SafeBuffer string *Prem Sichanugrist*
713
714 * Fix escape_js to work correctly with the new SafeBuffer restriction *Paul Gallagher*
715
716 * Brought back alternative convention for namespaced models in i18n *thoefer*
717
718 Now the key can be either "namespace.model" or "namespace/model" until further deprecation.
719
720 * It is prohibited to perform a in-place SafeBuffer mutation *tenderlove*
721
722 The old behavior of SafeBuffer allowed you to mutate string in place via
723 method like `sub!`. These methods can add unsafe strings to a safe buffer,
724 and the safe buffer will continue to be marked as safe.
725
726 An example problem would be something like this:
727
728 <%= link_to('hello world', @user).sub!(/hello/, params[:xss]) %>
729
730 In the above example, an untrusted string (`params[:xss]`) is added to the
731 safe buffer returned by `link_to`, and the untrusted content is successfully
732 sent to the client without being escaped. To prevent this from happening
733 `sub!` and other similar methods will now raise an exception when they are called on a safe buffer.
734
735 In addition to the in-place versions, some of the versions of these methods which return a copy of the string will incorrectly mark strings as safe. For example:
736
737 <%= link_to('hello world', @user).sub(/hello/, params[:xss]) %>
738
739 The new versions will now ensure that *all* strings returned by these methods on safe buffers are marked unsafe.
740
741 You can read more about this change in http://groups.google.com/group/rubyonrails-security/browse_thread/thread/2e516e7acc96c4fb
742
743 * Warn if we cannot verify CSRF token authenticity *José Valim*
744
745 * Allow AM/PM format in datetime selectors *Aditya Sanghi*
746
747 * Only show dump of regular env methods on exception screen (not all the rack crap) *DHH*
748
749 * auto_link has been removed with no replacement. If you still use auto_link
750 please install the rails_autolink gem:
751 http://github.com/tenderlove/rails_autolink
752
753 *tenderlove*
754
755 * Added streaming support, you can enable it with: *José Valim*
756
757 class PostsController < ActionController::Base
758 stream :only => :index
759 end
760
761 Please read the docs at `ActionController::Streaming` for more information.
762
763 * Added `ActionDispatch::Request.ignore_accept_header` to ignore accept headers and only consider the format given as parameter *José Valim*
764
765 * Created `ActionView::Renderer` and specified an API for `ActionView::Context`, check those objects for more information *José Valim*
766
767 * Added `ActionController::ParamsWrapper` to wrap parameters into a nested hash, and will be turned on for JSON request in new applications by default *Prem Sichanugrist*
768
769 This can be customized by setting `ActionController::Base.wrap_parameters` in `config/initializer/wrap_parameters.rb`
770
771 * RJS has been extracted out to a gem. *fxn*
772
773 * Implicit actions named not_implemented can be rendered. *Santiago Pastorino*
774
775 * Wildcard route will always match the optional format segment by default. *Prem Sichanugrist*
776
777 For example if you have this route:
778
779 match '*pages' => 'pages#show'
780
781 by requesting '/foo/bar.json', your `params[:pages]` will be equals to "foo/bar" with the request format of JSON. If you want the old 3.0.x behavior back, you could supply `:format => false` like this:
782
783 match '*pages' => 'pages#show', :format => false
784
785 * Added Base.http_basic_authenticate_with to do simple http basic authentication with a single class method call *DHH*
786
787 class PostsController < ApplicationController
788 USER_NAME, PASSWORD = "dhh", "secret"
789
790 before_filter :authenticate, :except => [ :index ]
791
792 def index
793 render :text => "Everyone can see me!"
794 end
795
796 def edit
797 render :text => "I'm only accessible if you know the password"
798 end
799
800 private
801 def authenticate
802 authenticate_or_request_with_http_basic do |user_name, password|
803 user_name == USER_NAME && password == PASSWORD
804 end
805 end
806 end
807
808 ..can now be written as
809
810 class PostsController < ApplicationController
811 http_basic_authenticate_with :name => "dhh", :password => "secret", :except => :index
812
813 def index
814 render :text => "Everyone can see me!"
815 end
816
817 def edit
818 render :text => "I'm only accessible if you know the password"
819 end
820 end
821
822 * Allow you to add `force_ssl` into controller to force browser to transfer data via HTTPS protocol on that particular controller. You can also specify `:only` or `:except` to specific it to particular action. *DHH and Prem Sichanugrist*
823
824 * Allow FormHelper#form_for to specify the :method as a direct option instead of through the :html hash *DHH*
825
826 form_for(@post, remote: true, method: :delete) instead of form_for(@post, remote: true, html: { method: :delete })
827
828 * Make JavaScriptHelper#j() an alias for JavaScriptHelper#escape_javascript() -- note this then supersedes the Object#j() method that the JSON gem adds within templates using the JavaScriptHelper *DHH*
829
830 * Sensitive query string parameters (specified in config.filter_parameters) will now be filtered out from the request paths in the log file. *Prem Sichanugrist, fxn*
831
832 * URL parameters which return false for to_param now appear in the query string (previously they were removed) *Andrew White*
833
834 * URL parameters which return nil for to_param are now removed from the query string *Andrew White*
835
836 * ActionDispatch::MiddlewareStack now uses composition over inheritance. It is
837 no longer an array which means there may be methods missing that were not tested.
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
838
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
839 * Add an :authenticity_token option to form_tag for custom handling or to omit the token (pass :authenticity_token => false). *Jakub Kuźma, Igor Wiedler*
840
841 * HTML5 button_tag helper. *Rizwan Reza*
842
843 * Template lookup now searches further up in the inheritance chain. *Artemave*
844
845 * Brought back config.action_view.cache_template_loading, which allows to decide whether templates should be cached or not. *Piotr Sarnacki*
846
847 * url_for and named url helpers now accept :subdomain and :domain as options, *Josh Kalderimis*
848
849 * The redirect route method now also accepts a hash of options which will only change the parts of the url in question, or an object which responds to call, allowing for redirects to be reused (check the documentation for examples). *Josh Kalderimis*
850
851 * Added config.action_controller.include_all_helpers. By default 'helper :all' is done in ActionController::Base, which includes all the helpers by default. Setting include_all_helpers to false will result in including only application_helper and helper corresponding to controller (like foo_helper for foo_controller). *Piotr Sarnacki*
852
853 * Added a convenience idiom to generate HTML5 data-* attributes in tag helpers from a :data hash of options:
854
855 tag("div", :data => {:name => 'Stephen', :city_state => %w(Chicago IL)})
856 # => <div data-name="Stephen" data-city-state="[&quot;Chicago&quot;,&quot;IL&quot;]" />
857
858 Keys are dasherized. Values are JSON-encoded, except for strings and symbols. *Stephen Celis*
859
860 * Deprecate old template handler API. The new API simply requires a template handler to respond to call. *José Valim*
861
862 * :rhtml and :rxml were finally removed as template handlers. *José Valim*
863
864 * Moved etag responsibility from ActionDispatch::Response to the middleware stack. *José Valim*
865
866 * Rely on Rack::Session stores API for more compatibility across the Ruby world. This is backwards incompatible since Rack::Session expects #get_session to accept 4 arguments and requires #destroy_session instead of simply #destroy. *José Valim*
867
868 * file_field automatically adds :multipart => true to the enclosing form. *Santiago Pastorino*
869
870 * Renames csrf_meta_tag -> csrf_meta_tags, and aliases csrf_meta_tag for backwards compatibility. *fxn*
871
872 * Add Rack::Cache to the default stack. Create a Rails store that delegates to the Rails cache, so by default, whatever caching layer you are using will be used for HTTP caching. Note that Rack::Cache will be used if you use #expires_in, #fresh_when or #stale with :public => true. Otherwise, the caching rules will apply to the browser only. *Yehuda Katz, Carl Lerche*
873
874
05c6caf @claudiob Add release dates to documentation
claudiob authored
875 ## Rails 3.0.12 (March 1, 2012) ##
152a393 @pacoguzman Update changelogs with rails 3.0-stable branch info
pacoguzman authored
876
877 * Fix using `tranlate` helper with a html translation which uses the `:count` option for
878 pluralization.
879
880 *Jon Leighton*
881
882
883 ## Rails 3.0.11 (November 18, 2011) ##
884
885 * Fix XSS security vulnerability in the `translate` helper method. When using interpolation
886 in combination with HTML-safe translations, the interpolated input would not get HTML
887 escaped. *GH 3664*
888
889 Before:
890
891 translate('foo_html', :something => '<script>') # => "...<script>..."
892
893 After:
894
895 translate('foo_html', :something => '<script>') # => "...&lt;script&gt;..."
896
897 *Sergey Nartimov*
898
899 * Implement a workaround for a bug in ruby-1.9.3p0 where an error would be
900 raised while attempting to convert a template from one encoding to another.
901
902 Please see http://redmine.ruby-lang.org/issues/5564 for details of the bug.
903
904 The workaround is to load all conversions into memory ahead of time, and will
905 only happen if the ruby version is exactly 1.9.3p0. The hope is obviously
906 that the underlying problem will be resolved in the next patchlevel release
907 of 1.9.3.
908
909 * Fix assert_select_email to work on multipart and non-multipart emails as the method stopped working correctly in Rails 3.x due to changes in the new mail gem.
910
911 * Fix url_for when passed a hash to prevent additional options (eg. :host, :protocol) from being added to the hash after calling it.
912
913
914 ## Rails 3.0.10 (August 16, 2011) ##
915
916 * Fixes an issue where cache sweepers with only after filters would have no
917 controller object, it would raise undefined method controller_name for nil [jeroenj]
918
919 * Ensure status codes are logged when exceptions are raised.
920
921 * Subclasses of OutputBuffer are respected.
922
923 * Fixed ActionView::FormOptionsHelper#select with :multiple => false
924
925 * Avoid extra call to Cache#read in case of a fragment cache hit
926
927
928 ## Rails 3.0.9 (June 16, 2011) ##
929
930 * json_escape will now return a SafeBuffer string if it receives SafeBuffer string [tenderlove]
931
932 * Make sure escape_js returns SafeBuffer string if it receives SafeBuffer string [Prem Sichanugrist]
933
934 * Fix text helpers to work correctly with the new SafeBuffer restriction [Paul Gallagher, Arun Agrawal, Prem Sichanugrist]
935
936
937 ## Rails 3.0.8 (June 7, 2011) ##
938
939 * It is prohibited to perform a in-place SafeBuffer mutation [tenderlove]
940
941 The old behavior of SafeBuffer allowed you to mutate string in place via
942 method like `sub!`. These methods can add unsafe strings to a safe buffer,
943 and the safe buffer will continue to be marked as safe.
944
945 An example problem would be something like this:
946
947 <%= link_to('hello world', @user).sub!(/hello/, params[:xss]) %>
948
949 In the above example, an untrusted string (`params[:xss]`) is added to the
950 safe buffer returned by `link_to`, and the untrusted content is successfully
951 sent to the client without being escaped. To prevent this from happening
952 `sub!` and other similar methods will now raise an exception when they are called on a safe buffer.
953
954 In addition to the in-place versions, some of the versions of these methods which return a copy of the string will incorrectly mark strings as safe. For example:
955
956 <%= link_to('hello world', @user).sub(/hello/, params[:xss]) %>
957
958 The new versions will now ensure that *all* strings returned by these methods on safe buffers are marked unsafe.
959
960 You can read more about this change in http://groups.google.com/group/rubyonrails-security/browse_thread/thread/2e516e7acc96c4fb
961
962 * Fixed github issue #342 with asset paths and relative roots.
963
964
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
965 ## Rails 3.0.7 (April 18, 2011) ##
966
967 * No changes.
968
969
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
970 ## Rails 3.0.6 (April 5, 2011) ##
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
971
972 * Fixed XSS vulnerability in `auto_link`. `auto_link` no longer marks input as
973 html safe. Please make sure that calls to auto_link() are wrapped in a
974 sanitize(), or a raw() depending on the type of input passed to auto_link().
975 For example:
976
977 <%= sanitize(auto_link(some_user_input)) %>
978
979 Thanks to Torben Schulz for reporting this. The fix can be found here:
980 61ee3449674c591747db95f9b3472c5c3bd9e84d
981
982 * Fixes the output of `rake routes` to be correctly match to the behavior of the application, as the regular expression used to match the path is greedy and won't capture the format part by default *Prem Sichanugrist*
983
984 * Fixes an issue with number_to_human when converting values which are less than 1 but greater than -1 *Josh Kalderimis*
985
986 * Sensitive query string parameters (specified in config.filter_parameters) will now be filtered out from the request paths in the log file. *Prem Sichanugrist, fxn*
987
988 * URL parameters which return nil for to_param are now removed from the query string *Andrew White*
989
990 * Don't allow i18n to change the minor version, version now set to ~> 0.5.0 *Santiago Pastorino*
991
992 * Make TranslationHelper#translate use the :rescue_format option in I18n 0.5.0 *Sven Fuchs*
993
994 * Fix regression: javascript_include_tag shouldn't raise if you register an expansion key with nil or [] value *Santiago Pastorino*
995
996 * Fix Action caching bug where an action that has a non-cacheable response always renders a nil response body. It now correctly renders the response body. *Cheah Chu Yeow*
997
998
999 ## Rails 3.0.5 (February 26, 2011) ##
1000
1001 * No changes.
1002
1003
1004 ## Rails 3.0.4 (February 8, 2011) ##
1005
1006 * No changes.
1007
1008
1009 ## Rails 3.0.3 (November 16, 2010) ##
1010
1011 * When ActiveRecord::Base objects are sent to predicate methods, the id of the object should be sent to ARel, not the ActiveRecord::Base object.
1012
1013 * :constraints routing should only do sanity checks against regular expressions. String arguments are OK.
1014
1015
1016 ## Rails 3.0.2 (November 15, 2010) ##
1017
1018 * The helper number_to_currency accepts a new :negative_format option to be able to configure how to render negative amounts. *Don Wilson*
1019
1020
1021 ## Rails 3.0.1 (October 15, 2010) ##
1022
1023 * No Changes, just a version bump.
1024
1025
1026 ## Rails 3.0.0 (August 29, 2010) ##
1027
1028 * password_field renders with nil value by default making the use of passwords secure by default, if you want to render you should do for instance f.password_field(:password, :value => @user.password) *Santiago Pastorino*
1029
1030 * Symbols and strings in routes should yield the same behavior. Note this may break existing apps that were using symbols with the new routes API. *José Valim*
1031
1032 * Add clear_helpers as a way to clean up all helpers added to this controller, maintaining just the helper with the same name as the controller. *José Valim*
1033
1034 * Support routing constraints in functional tests. *Andrew White*
1035
1036 * Add a header that tells Internet Explorer (all versions) to use the best available standards support. *Yehuda Katz*
1037
1038 * Allow stylesheet/javascript extensions to be changed through railties. *Josh Kalderimis*
1039
1040 * link_to, button_to, and tag/tag_options now rely on html_escape instead of escape_once. *fxn*
1041
1042 * url_for returns always unescaped strings, and the :escape option is gone. *fxn*
1043
1044 * Added accept-charset parameter and _snowman hidden field to force the contents
1045 of Rails POSTed forms to be in UTF-8 *Yehuda Katz*
1046
1047 * Upgrade to Rack 1.2.1 *Jeremy Kemper*
1048
1049 * Allow :path to be given to match/get/post/put/delete instead of :path_names in the new router *Carlos Antônio da Silva*
1050
1051 * Added resources_path_names to the new router DSL *José Valim*
1052
1053 * Allow options to be given to the namespace method in the new router *Carlos Antônio da Silva*
1054
1055 * Deprecate :name_prefix in the new router DSL *José Valim*
1056
1057 * Add shallow routes back to the new router *Diego Carrion, Andrew White*
1058
1059 resources :posts do
1060 shallow do
1061 resources :comments
1062 end
1063 end
1064
1065 You can now use comment_path for /comments/1 instead of post_comment_path for /posts/1/comments/1.
1066
1067 * Add support for multi-subdomain session by setting cookie host in session cookie so you can share session between www.example.com, example.com and user.example.com. #4818 *Guillermo Álvarez*
1068
1069 * Removed textilize, textilize_without_paragraph and markdown helpers. *Santiago Pastorino*
1070
1071 * Remove middleware laziness *José Valim*
1072
1073 * Make session stores rely on request.cookie_jar and change set_session semantics to return the cookie value instead of a boolean. *José Valim*
1074
1075 * OAuth 2: HTTP Token Authorization support to complement Basic and Digest Authorization. *Rick Olson*
1076
1077 * Fixed inconsistencies in form builder and view helpers #4432 *Neeraj Singh*
1078
1079 * Both :xml and :json renderers now forwards the given options to the model, allowing you to invoke them as render :xml => @projects, :include => :tasks *José Valim, Yehuda Katz*
1080
1081 * Renamed the field error CSS class from fieldWithErrors to field_with_errors for consistency. *Jeremy Kemper*
1082
1083 * Add support for shorthand routes like /projects/status(.:format) #4423 *Diego Carrion*
1084
1085 * Changed translate helper so that it doesn’t mark every translation as safe HTML. Only keys with a "_html" suffix and keys named "html" are considered to be safe HTML. All other translations are left untouched. *Craig Davey*
1086
1087 * New option :as added to form_for allows to change the object name. The old <% form_for :client, @post %> becomes <% form_for @post, :as => :client %> *spastorino*
1088
1089 * Removed verify method in controllers. *JV*
1090 It's now available as a plugin at http://github.com/rails/verification
1091
1092 * Removed input, form, error_messages_for and error_message_on from views. *JV*
1093 It's now available as a plugin at http://github.com/rails/dynamic_form
1094
1095 * Routes can be scoped by controller module. *Jeremy Kemper*
1096
1097 # /session => Auth::SessionsController
1098 scope :module => 'auth' do
1099 resource :session
1100 end
1101
1102 * Added #favicon_link_tag, it uses #image_path so in particular the favicon gets an asset ID *fxn*
1103
1104 * Fixed that default locale templates should be used if the current locale template is missing *DHH*
1105
1106 * Added all the new HTML5 form types as individual form tag methods (search, url, number, etc) #3646 *Stephen Celis*
1107
1108 * Changed the object used in routing constraints to be an instance of
1109 ActionDispatch::Request rather than Rack::Request *YK*
1110
1111 * Changed ActionDispatch::Request#method to return a String, to be compatible
1112 with Rack::Request. Added ActionDispatch::Request#method_symbol to
1113 return a symbol form of the request method. *YK*
1114
1115 * Changed ActionDispatch::Request#method to return the original
1116 method and #request_method to return the overridden method in the
1117 case of methodoverride being used (this means that #method returns
1118 "HEAD" and #request_method returns "GET" in HEAD requests). This
1119 is for compatibility with Rack::Request *YK*
1120
1121 * #concat is now deprecated in favor of using <%= %> helpers *YK*
1122
1123 * Block helpers now return Strings, so you can use <%= form_for @foo do |f| %>.
1124 <% form_for do |f| %> still works with deprecation notices *YK*
1125
1126 * Add a new #mount method on the router that does not anchor the PATH_INFO
1127 at the end *YK & CL*
1128
1129 * Create a new LookupContext object that is responsible for performantly
1130 finding a template for a given pattern *JV*
1131
1132 * Removed relative_url_for in favor of respecting SCRIPT_NAME *YK & CL*
1133
1134 * Changed file streaming to use Rack::Sendfile middleware *YK*
1135
1136 * ActionDispatch::Request#content_type returns a String to be compatible with
1137 Rack::Request. Use #content_mime_type for the Mime::Type instance *YK*
1138
1139 * Updated Prototype to 1.6.1 and Scriptaculous to 1.8.3 *ML*
1140
1141 * Change the preferred way that URL helpers are included into a class*YK & CL*
1142
1143 # for all helpers including named routes
1144 include Rails.application.router.url_helpers
1145
1146 # for just url_for
1147 include Rails.application.router.url_for
1148
1149 * Fixed that PrototypeHelper#update_page should return html_safe *DHH*
1150
1151 * Fixed that much of DateHelper wouldn't return html_safe? strings *DHH*
1152
1153 * Fixed that fragment caching should return a cache hit as html_safe (or it would all just get escaped) *DHH*
1154
1155 * Added that ActionController::Base now does helper :all instead of relying on the default ApplicationController in Rails to do it *DHH*
1156
1157 * Added ActionDispatch::Request#authorization to access the http authentication header regardless of its proxy hiding *DHH*
1158
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1159 * Added :alert, :notice, and :flash as options to ActionController::Base#redirect_to that'll automatically set the proper flash before the redirection *DHH*. Examples:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1160
1161 flash[:notice] = 'Post was created'
1162 redirect_to(@post)
1163
1164 ...becomes:
1165
1166 redirect_to(@post, :notice => 'Post was created')
1167
1168 * Added ActionController::Base#notice/= and ActionController::Base#alert/= as a convenience accessors in both the controller and the view for flash[:notice]/= and flash[:alert]/= *DHH*
1169
1170 * Introduce grouped_collection_select helper. #1249 *Dan Codeape, Erik Ostrom*
1171
1172 * Make sure javascript_include_tag/stylesheet_link_tag does not append ".js" or ".css" onto external urls. #1664 *Matthew Rudy Jacobs*
1173
1174 * Ruby 1.9: fix Content-Length for multibyte send_data streaming. #2661 *Sava Chankov*
1175
1176 * Ruby 1.9: ERB template encoding using a magic comment at the top of the file. *Jeremy Kemper*
1177 <%# encoding: utf-8 %>
1178
1179 * Change integration test helpers to accept Rack environment instead of just HTTP Headers *Pratik Naik*
1180
1181 Before : get '/path', {}, 'Accept' => 'text/javascript'
1182 After : get '/path', {}, 'HTTP_ACCEPT' => 'text/javascript'
1183
1184 * Instead of checking Rails.env.test? in Failsafe middleware, check env["rails.raise_exceptions"] *Bryan Helmkamp*
1185
1186 * Fixed that TestResponse.cookies was returning cookies unescaped #1867 *Doug McInnes*
1187
1188
1189 ## 2.3.2 Final (March 15, 2009) ##
1190
1191 * Fixed that redirection would just log the options, not the final url (which lead to "Redirected to #<Post:0x23150b8>") *DHH*
1192
1193 * Don't check authenticity tokens for any AJAX requests *Ross Kaffenberger/Bryan Helmkamp*
1194
1195 * Added ability to pass in :public => true to fresh_when, stale?, and expires_in to make the request proxy cachable #2095 *Gregg Pollack*
1196
1197 * Fixed that passing a custom form builder would be forwarded to nested fields_for calls #2023 *Eloy Duran/Nate Wiger*
1198
1199 * Form option helpers now support disabled option tags and the use of lambdas for selecting/disabling option tags from collections #837 *Tekin*
1200
1201 * Added partial scoping to TranslationHelper#translate, so if you call translate(".foo") from the people/index.html.erb template, you'll actually be calling I18n.translate("people.index.foo") *DHH*
1202
1203 * Fix a syntax error in current_page?() that was prevent matches against URL's with multiple query parameters #1385, #1868 *chris finne/Andrew White*
1204
1205 * Added localized rescue template when I18n.locale is set (ex: public/404.da.html) #1835 *José Valim*
1206
1207 * Make the form_for and fields_for helpers support the new Active Record nested update options. #1202 *Eloy Duran*
1208
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1209 <% form_for @person do |person_form| %>
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1210 ...
1211 <% person_form.fields_for :projects do |project_fields| %>
1212 <% if project_fields.object.active? %>
1213 Name: <%= project_fields.text_field :name %>
1214 <% end %>
1215 <% end %>
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1216 <% end %>
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1217
1218
1219 * Added grouped_options_for_select helper method for wrapping option tags in optgroups. #977 *Jon Crawford*
1220
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1221 * Implement HTTP Digest authentication. #1230 *Gregg Kellogg, Pratik Naik* Example :
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1222
1223 class DummyDigestController < ActionController::Base
1224 USERS = { "lifo" => 'world' }
1225
1226 before_filter :authenticate
1227
1228 def index
1229 render :text => "Hello Secret"
1230 end
1231
1232 private
1233
1234 def authenticate
1235 authenticate_or_request_with_http_digest("Super Secret") do |username|
1236 # Return the user's password
1237 USERS[username]
1238 end
1239 end
1240 end
1241
1242 * Improved i18n support for the number_to_human_size helper. Changes the storage_units translation data; update your translations accordingly. #1634 *Yaroslav Markin*
1243 storage_units:
1244 # %u is the storage unit, %n is the number (default: 2 MB)
1245 format: "%n %u"
1246 units:
1247 byte:
1248 one: "Byte"
1249 other: "Bytes"
1250 kb: "KB"
1251 mb: "MB"
1252 gb: "GB"
1253 tb: "TB"
1254
1255 * Added :silence option to BenchmarkHelper#benchmark and turned log_level into a hash parameter and deprecated the old use *DHH*
1256
1257 * Fixed the AssetTagHelper cache to use the computed asset host as part of the cache key instead of just assuming the its a string #1299 *DHH*
1258
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1259 * Make ActionController#render(string) work as a shortcut for render :file/:template/:action => string. #1435 *Pratik Naik* Examples:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1260
1261 \# Instead of render(:action => 'other_action')
1262 render('other_action') # argument has no '/'
1263 render(:other_action)
1264
1265 \# Instead of render(:template => 'controller/action')
1266 render('controller/action') # argument must not begin with a '/', but contain a '/'
1267
1268 \# Instead of render(:file => '/Users/lifo/home.html.erb')
1269 render('/Users/lifo/home.html.erb') # argument must begin with a '/'
1270
1271 * Add :prompt option to date/time select helpers. #561 *Sam Oliver*
1272
1273 * Fixed that send_file shouldn't set an etag #1578 *Hongli Lai*
1274
1275 * Allow users to opt out of the spoofing checks in Request#remote_ip. Useful for sites whose traffic regularly triggers false positives. *Darren Boyd*
1276
1277 * Deprecated formatted_polymorphic_url. *Jeremy Kemper*
1278
1279 * Added the option to declare an asset_host as an object that responds to call (see http://github.com/dhh/asset-hosting-with-minimum-ssl for an example) *David Heinemeier Hansson*
1280
1281 * Added support for multiple routes.rb files (useful for plugin engines). This also means that draw will no longer clear the route set, you have to do that by hand (shouldn't make a difference to you unless you're doing some funky stuff) *David Heinemeier Hansson*
1282
1283 * Dropped formatted_* routes in favor of just passing in :format as an option. This cuts resource routes generation in half #1359 *aaronbatalion*
1284
1285 * Remove support for old double-encoded cookies from the cookie store. These values haven't been generated since before 2.1.0, and any users who have visited the app in the intervening 6 months will have had their cookie upgraded. *Michael Koziarski*
1286
1287 * Allow helpers directory to be overridden via ActionController::Base.helpers_dir #1424 *Sam Pohlenz*
1288
1289 * Remove deprecated ActionController::Base#assign_default_content_type_and_charset
1290
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1291 * Changed the default of ActionView#render to assume partials instead of files when not given an options hash *DHH*. Examples:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1292
1293 # Instead of <%= render :partial => "account" %>
1294 <%= render "account" %>
1295
1296 # Instead of <%= render :partial => "account", :locals => { :account => @buyer } %>
1297 <%= render "account", :account => @buyer %>
1298
1299 # @account is an Account instance, so it uses the RecordIdentifier to replace
1300 # <%= render :partial => "accounts/account", :locals => { :account => @account } %>
1301 <%= render(@account) %>
1302
1303 # @posts is an array of Post instances, so it uses the RecordIdentifier to replace
1304 # <%= render :partial => "posts/post", :collection => @posts %>
1305 <%= render(@posts) %>
1306
1307 * Remove deprecated render_component. Please use the plugin from http://github.com/rails/render_component/tree/master *Pratik Naik*
1308
1309 * Fixed RedCloth and BlueCloth shouldn't preload. Instead just assume that they're available if you want to use textilize and markdown and let autoload require them *David Heinemeier Hansson*
1310
1311
1312 ## 2.2.2 (November 21st, 2008) ##
1313
1314 * I18n: translate number_to_human_size. Add storage_units: [Bytes, KB, MB, GB, TB] to your translations. #1448 *Yaroslav Markin*
1315
1316 * Restore backwards compatible functionality for setting relative_url_root. Include deprecation
1317
1318 * Switched the CSRF module to use the request content type to decide if the request is forgeable. #1145 *Jeff Cohen*
1319
1320 * Added :only and :except to map.resources to let people cut down on the number of redundant routes in an application. Typically only useful for huge routesets. #1215 *Tom Stuart*
1321
1322 map.resources :products, :only => :show do |product|
1323 product.resources :images, :except => :destroy
1324 end
1325
1326 * Added render :js for people who want to render inline JavaScript replies without using RJS *David Heinemeier Hansson*
1327
1328 * Fixed that polymorphic_url should compact given array #1317 *hiroshi*
1329
1330 * Fixed the sanitize helper to avoid double escaping already properly escaped entities #683 *antonmos/Ryan McGeary*
1331
1332 * Fixed that FormTagHelper generated illegal html if name contained square brackets #1238 *Vladimir Dobriakov*
1333
1334 * Fix regression bug that made date_select and datetime_select raise a Null Pointer Exception when a nil date/datetime was passed and only month and year were displayed #1289 *Bernardo Padua/Tor Erik*
1335
1336 * Simplified the logging format for parameters (don't include controller, action, and format as duplicates) *David Heinemeier Hansson*
1337
1338 * Remove the logging of the Session ID when the session store is CookieStore *David Heinemeier Hansson*
1339
1340 * Fixed regex in redirect_to to fully support URI schemes #1247 *Seth Fitzsimmons*
1341
1342 * Fixed bug with asset timestamping when using relative_url_root #1265 *Joe Goldwasser*
1343
1344
1345 ## 2.2.0 RC1 (October 24th, 2008) ##
1346
1347 * Fix incorrect closing CDATA delimiter and that HTML::Node.parse would blow up on unclosed CDATA sections *packagethief*
1348
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1349 * Added stale? and fresh_when methods to provide a layer of abstraction above request.fresh? and friends *DHH*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1350
1351 class ArticlesController < ApplicationController
1352 def show_with_respond_to_block
1353 @article = Article.find(params[:id])
1354
1355
1356 # If the request sends headers that differs from the options provided to stale?, then
1357 # the request is indeed stale and the respond_to block is triggered (and the options
1358 # to the stale? call is set on the response).
1359 #
1360 # If the request headers match, then the request is fresh and the respond_to block is
1361 # not triggered. Instead the default render will occur, which will check the last-modified
1362 # and etag headers and conclude that it only needs to send a "304 Not Modified" instead
1363 # of rendering the template.
1364 if stale?(:last_modified => @article.published_at.utc, :etag => @article)
1365 respond_to do |wants|
1366 # normal response processing
1367 end
1368 end
1369 end
1370
1371 def show_with_implied_render
1372 @article = Article.find(params[:id])
1373
1374 # Sets the response headers and checks them against the request, if the request is stale
1375 # (i.e. no match of either etag or last-modified), then the default render of the template happens.
1376 # If the request is fresh, then the default render will return a "304 Not Modified"
1377 # instead of rendering the template.
1378 fresh_when(:last_modified => @article.published_at.utc, :etag => @article)
1379 end
1380 end
1381
1382
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1383 * Added inline builder yield to atom_feed_helper tags where appropriate *Sam Ruby*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1384
1385 entry.summary :type => 'xhtml' do |xhtml|
1386 xhtml.p pluralize(order.line_items.count, "line item")
1387 xhtml.p "Shipped to #{order.address}"
1388 xhtml.p "Paid by #{order.pay_type}"
1389 end
1390
1391 * Make PrototypeHelper#submit_to_remote a wrapper around PrototypeHelper#button_to_remote. *Tarmo Tänav*
1392
1393 * Set HttpOnly for the cookie session store's cookie. #1046
1394
1395 * Added FormTagHelper#image_submit_tag confirm option #784 *Alastair Brunton*
1396
1397 * Fixed FormTagHelper#submit_tag with :disable_with option wouldn't submit the button's value when was clicked #633 *Jose Fernandez*
1398
1399 * Stopped logging template compiles as it only clogs up the log *David Heinemeier Hansson*
1400
1401 * Changed the X-Runtime header to report in milliseconds *David Heinemeier Hansson*
1402
1403 * Changed BenchmarkHelper#benchmark to report in milliseconds *David Heinemeier Hansson*
1404
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1405 * Changed logging format to be millisecond based and skip misleading stats *DHH*. Went from:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1406
1407 Completed in 0.10000 (4 reqs/sec) | Rendering: 0.04000 (40%) | DB: 0.00400 (4%) | 200 OK [http://example.com]
1408
1409 ...to:
1410
1411 Completed in 100ms (View: 40, DB: 4) | 200 OK [http://example.com]
1412
1413 * Add support for shallow nesting of routes. #838 *S. Brent Faulkner*
1414
1415 Example :
1416
1417 map.resources :users, :shallow => true do |user|
1418 user.resources :posts
1419 end
1420
1421 - GET /users/1/posts (maps to PostsController#index action as usual)
1422 named route "user_posts" is added as usual.
1423
1424 - GET /posts/2 (maps to PostsController#show action as if it were not nested)
1425 Additionally, named route "post" is added too.
1426
1427 * Added button_to_remote helper. #3641 *Donald Piret, Tarmo Tänav*
1428
1429 * Deprecate render_component. Please use render_component plugin from http://github.com/rails/render_component/tree/master *Pratik Naik*
1430
1431 * Routes may be restricted to lists of HTTP methods instead of a single method or :any. #407 *Brennan Dunn, Gaius Centus Novus*
1432 map.resource :posts, :collection => { :search => [:get, :post] }
1433 map.session 'session', :requirements => { :method => [:get, :post, :delete] }
1434
1435 * Deprecated implicit local assignments when rendering partials *Josh Peek*
1436
1437 * Introduce current_cycle helper method to return the current value without bumping the cycle. #417 *Ken Collins*
1438
1439 * Allow polymorphic_url helper to take url options. #880 *Tarmo Tänav*
1440
1441 * Switched integration test runner to use Rack processor instead of CGI *Josh Peek*
1442
1443 * Made AbstractRequest.if_modified_sense return nil if the header could not be parsed *Jamis Buck*
1444
1445 * Added back ActionController::Base.allow_concurrency flag *Josh Peek*
1446
1447 * AbstractRequest.relative_url_root is no longer automatically configured by a HTTP header. It can now be set in your configuration environment with config.action_controller.relative_url_root *Josh Peek*
1448
1449 * Update Prototype to 1.6.0.2 #599 *Patrick Joyce*
1450
1451 * Conditional GET utility methods. *Jeremy Kemper*
1452 response.last_modified = @post.updated_at
1453 response.etag = [:admin, @post, current_user]
1454
1455 if request.fresh?(response)
1456 head :not_modified
1457 else
1458 # render ...
1459 end
1460
1461 * All 2xx requests are considered successful *Josh Peek*
1462
1463 * Fixed that AssetTagHelper#compute_public_path shouldn't cache the asset_host along with the source or per-request proc's won't run *David Heinemeier Hansson*
1464
1465 * Removed config.action_view.cache_template_loading, use config.cache_classes instead *Josh Peek*
1466
1467 * Get buffer for fragment cache from template's @output_buffer *Josh Peek*
1468
1469 * Set config.action_view.warn_cache_misses = true to receive a warning if you perform an action that results in an expensive disk operation that could be cached *Josh Peek*
1470
1471 * Refactor template preloading. New abstractions include Renderable mixins and a refactored Template class *Josh Peek*
1472
1473 * Changed ActionView::TemplateHandler#render API method signature to render(template, local_assigns = {}) *Josh Peek*
1474
1475 * Changed PrototypeHelper#submit_to_remote to PrototypeHelper#button_to_remote to stay consistent with link_to_remote (submit_to_remote still works as an alias) #8994 *clemens*
1476
1477 * Add :recursive option to javascript_include_tag and stylesheet_link_tag to be used along with :all. #480 *Damian Janowski*
1478
1479 * Allow users to disable the use of the Accept header *Michael Koziarski*
1480
1481 The accept header is poorly implemented by browsers and causes strange
1482 errors when used on public sites where crawlers make requests too. You can use formatted urls (e.g. /people/1.xml) to support API clients in a much simpler way.
1483 To disable the header you need to set:
1484 config.action_controller.use_accept_header = false
1485 * Do not stat template files in production mode before rendering. You will no longer be able to modify templates in production mode without restarting the server *Josh Peek*
1486
1487 * Deprecated TemplateHandler line offset *Josh Peek*
1488
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1489 * Allow caches_action to accept cache store options. #416. *José Valim*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1490
1491 caches_action :index, :redirected, :if => Proc.new { |c| !c.request.format.json? }, :expires_in => 1.hour
1492
1493 * Remove define_javascript_functions, javascript_include_tag and friends are far superior. *Michael Koziarski*
1494
1495 * Deprecate :use_full_path render option. The supplying the option no longer has an effect *Josh Peek*
1496
1497 * Add :as option to render a collection of partials with a custom local variable name. #509 *Simon Jefford, Pratik Naik*
1498
1499 render :partial => 'other_people', :collection => @people, :as => :person
1500
1501 This will let you access objects of @people as 'person' local variable inside 'other_people' partial template.
1502
1503 * time_zone_select: support for regexp matching of priority zones. Resolves #195 *Ernie Miller*
1504
1505 * Made ActionView::Base#render_file private *Josh Peek*
1506
1507 * Refactor and simplify the implementation of assert_redirected_to. Arguments are now normalised relative to the controller being tested, not the root of the application. *Michael Koziarski*
1508
1509 This could cause some erroneous test failures if you were redirecting between controllers
1510 in different namespaces and wrote your assertions relative to the root of the application.
1511
1512 * Remove follow_redirect from controller functional tests.
1513
1514 If you want to follow redirects you can use integration tests. The functional test version was only useful if you were using redirect_to :id=>...
1515 * Fix polymorphic_url with singleton resources. #461 *Tammer Saleh*
1516
1517 * Replaced TemplateFinder abstraction with ViewLoadPaths *Josh Peek*
1518
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1519 * Added block-call style to link_to *Sam Stephenson/David Heinemeier Hansson*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1520
1521 <% link_to(@profile) do %>
1522 <strong><%= @profile.name %></strong> -- <span>Check it out!!</span>
1523 <% end %>
1524
1525 * Performance: integration test benchmarking and profiling. *Jeremy Kemper*
1526
1527 * Make caching more aware of mime types. Ensure request format is not considered while expiring cache. *Jonathan del Strother*
1528
1529 * Drop ActionController::Base.allow_concurrency flag *Josh Peek*
1530
1531 * More efficient concat and capture helpers. Remove ActionView::Base.erb_variable. *Jeremy Kemper*
1532
1533 * Added page.reload functionality. Resolves #277. *Sean Huber*
1534
1535 * Fixed Request#remote_ip to only raise hell if the HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR doesn't match (not just if they're both present) *Mark Imbriaco, Bradford Folkens*
1536
1537 * Allow caches_action to accept a layout option *José Valim*
1538
1539 * Added Rack processor *Ezra Zygmuntowicz, Josh Peek*
1540
1541
1542 ## 2.1.0 (May 31st, 2008) ##
1543
1544 * InstanceTag#default_time_from_options overflows to DateTime *Geoff Buesing*
1545
1546 * Fixed that forgery protection can be used without session tracking (Peter Jones) *#139*
1547
1548 * Added session(:on) to turn session management back on in a controller subclass if the superclass turned it off (Peter Jones) *#136*
1549
1550 * Change the request forgery protection to go by Content-Type instead of request.format so that you can't bypass it by POSTing to "#{request.uri}.xml" *Rick Olson*
1551 * InstanceTag#default_time_from_options with hash args uses Time.current as default; respects hash settings when time falls in system local spring DST gap *Geoff Buesing*
1552
1553 * select_date defaults to Time.zone.today when config.time_zone is set *Geoff Buesing*
1554
1555 * Fixed that TextHelper#text_field would corrypt when raw HTML was used as the value (mchenryc, Kevin Glowacz) *#80*
1556
1557 * Added ActionController::TestCase#rescue_action_in_public! to control whether the action under test should use the regular rescue_action path instead of simply raising the exception inline (great for error testing) *David Heinemeier Hansson*
1558
1559 * Reduce number of instance variables being copied from controller to view. *Pratik Naik*
1560
1561 * select_datetime and select_time default to Time.zone.now when config.time_zone is set *Geoff Buesing*
1562
1563 * datetime_select defaults to Time.zone.now when config.time_zone is set *Geoff Buesing*
1564
1565 * Remove ActionController::Base#view_controller_internals flag. *Pratik Naik*
1566
1567 * Add conditional options to caches_page method. *Paul Horsfall*
1568
1569 * Move missing template logic to ActionView. *Pratik Naik*
1570
1571 * Introduce ActionView::InlineTemplate class. *Pratik Naik*
1572
1573 * Automatically parse posted JSON content for Mime::JSON requests. *Rick Olson*
1574
1575 POST /posts
1576 {"post": {"title": "Breaking News"}}
1577
1578 def create
1579 @post = Post.create params[:post]
1580 # ...
1581 end
1582
1583 * add json_escape ERB util to escape html entities in json strings that are output in HTML pages. *Rick Olson*
1584
1585 * Provide a helper proxy to access helper methods from outside views. Closes #10839 *Josh Peek*
1586 e.g. ApplicationController.helpers.simple_format(text)
1587
1588 * Improve documentation. *Xavier Noria, leethal, jerome*
1589
1590 * Ensure RJS redirect_to doesn't html-escapes string argument. Closes #8546 *Josh Peek, eventualbuddha, Pratik Naik*
1591
1592 * Support render :partial => collection of heterogeneous elements. #11491 *Zach Dennis*
1593
1594 * Avoid remote_ip spoofing. *Brian Candler*
1595
1596 * Added support for regexp flags like ignoring case in the :requirements part of routes declarations #11421 *NeilW*
1597
1598 * Fixed that ActionController::Base#read_multipart would fail if boundary was exactly 10240 bytes #10886 *ariejan*
1599
1600 * Fixed HTML::Tokenizer (used in sanitize helper) didn't handle unclosed CDATA tags #10071 *esad, packagethief*
1601
1602 * Improve documentation. *Ryan Bigg, Jan De Poorter, Cheah Chu Yeow, Xavier Shay, Jack Danger Canty, Emilio Tagua, Xavier Noria, Sunny Ripert*
1603
1604 * Fixed that FormHelper#radio_button would produce invalid ids #11298 *harlancrystal*
1605
1606 * Added :confirm option to submit_tag #11415 *Emilio Tagua*
1607
1608 * Fixed NumberHelper#number_with_precision to properly round in a way that works equally on Mac, Windows, Linux (closes #11409, #8275, #10090, #8027) *zhangyuanyi*
1609
1610 * Allow the #simple_format text_helper to take an html_options hash for each paragraph. #2448 *François Beausoleil, Chris O'Sullivan*
1611
1612 * Fix regression from filter refactoring where re-adding a skipped filter resulted in it being called twice. *Rick Olson*
1613
1614 * Refactor filters to use Active Support callbacks. #11235 *Josh Peek*
1615
1616 * Fixed that polymorphic routes would modify the input array #11363 *thomas.lee*
1617
1618 * Added :format option to NumberHelper#number_to_currency to enable better localization support #11149 *lylo*
1619
1620 * Fixed that TextHelper#excerpt would include one character too many #11268 *Irfy*
1621
1622 * Fix more obscure nested parameter hash parsing bug. #10797 *thomas.lee*
1623
1624 * Added ActionView::Helpers::register_javascript/stylesheet_expansion to make it easier for plugin developers to inject multiple assets. #10350 *lotswholetime*
1625
1626 * Fix nested parameter hash parsing bug. #10797 *thomas.lee*
1627
1628 * Allow using named routes in ActionController::TestCase before any request has been made. Closes #11273 *Eloy Duran*
1629
1630 * Fixed that sweepers defined by cache_sweeper will be added regardless of the perform_caching setting. Instead, control whether the sweeper should be run with the perform_caching setting. This makes testing easier when you want to turn perform_caching on/off *David Heinemeier Hansson*
1631
1632 * Make MimeResponds::Responder#any work without explicit types. Closes #11140 *jaw6*
1633
1634 * Better error message for type conflicts when parsing params. Closes #7962 *spicycode, matt*
1635
1636 * Remove unused ActionController::Base.template_class. Closes #10787 *Pratik Naik*
1637
1638 * Moved template handlers related code from ActionView::Base to ActionView::Template. *Pratik Naik*
1639
1640 * Tests for div_for and content_tag_for helpers. Closes #11223 *Chris O'Sullivan*
1641
1642 * Allow file uploads in Integration Tests. Closes #11091 *RubyRedRick*
1643
1644 * Refactor partial rendering into a PartialTemplate class. *Pratik Naik*
1645
1646 * Added that requests with JavaScript as the priority mime type in the accept header and no format extension in the parameters will be treated as though their format was :js when it comes to determining which template to render. This makes it possible for JS requests to automatically render action.js.rjs files without an explicit respond_to block *David Heinemeier Hansson*
1647
1648 * Tests for distance_of_time_in_words with TimeWithZone instances. Closes #10914 *Ernesto Jimenez*
1649
1650 * Remove support for multivalued (e.g., '&'-delimited) cookies. *Jamis Buck*
1651
1652 * Fix problem with render :partial collections, records, and locals. #11057 *lotswholetime*
1653
1654 * Added support for naming concrete classes in sweeper declarations *David Heinemeier Hansson*
1655
1656 * Remove ERB trim variables from trace template in case ActionView::Base.erb_trim_mode is changed in the application. #10098 *Tim Pope, Chris Kampmeier*
1657
1658 * Fix typo in form_helper documentation. #10650 *Xavier Shay, Chris Kampmeier*
1659
1660 * Fix bug with setting Request#format= after the getter has cached the value. #10889 *cch1*
1661
1662 * Correct inconsistencies in RequestForgeryProtection docs. #11032 *Mislav Marohnić*
1663
1664 * Introduce a Template class to ActionView. #11024 *Pratik Naik*
1665
1666 * Introduce the :index option for form_for and fields_for to simplify multi-model forms (see http://railscasts.com/episodes/75). #9883 *rmm5t*
1667
1668 * Introduce map.resources :cards, :as => 'tarjetas' to use a custom resource name in the URL: cards_path == '/tarjetas'. #10578 *blj*
1669
1670 * TestSession supports indifferent access. #7372 *tamc, Arsen7, mhackett, julik, jean.helou*
1671
1672 * Make assert_routing aware of the HTTP method used. #8039 *mpalmer*
1673 e.g. assert_routing({ :method => 'put', :path => '/product/321' }, { :controller => "product", :action => "update", :id => "321" })
1674
1675 * Make map.root accept a single symbol as an argument to declare an alias. #10818 *bscofield*
1676
1677 e.g. map.dashboard '/dashboard', :controller=>'dashboard'
1678 map.root :dashboard
1679
1680 * Handle corner case with image_tag when passed 'messed up' image names. #9018 *Duncan Beevers, mpalmer*
1681
1682 * Add label_tag helper for generating elements. #10802 *DefV*
1683
1684 * Introduce TemplateFinder to handle view paths and lookups. #10800 *Pratik Naik*
1685
1686 * Performance: optimize route recognition. Large speedup for apps with many resource routes. #10835 *oleganza*
1687
1688 * Make render :partial recognise form builders and use the _form partial. #10814 *Damian Janowski*
1689
1690 * Allow users to declare other namespaces when using the atom feed helpers. #10304 *david.calavera*
1691
1692 * Introduce send_file :x_sendfile => true to send an X-Sendfile response header. *Jeremy Kemper*
1693
1694 * Fixed ActionView::Helpers::ActiveRecordHelper::form for when protect_from_forgery is used #10739 *Jeremy Evans*
1695
1696 * Provide nicer access to HTTP Headers. Instead of request.env["HTTP_REFERRER"] you can now use request.headers["Referrer"]. *Michael Koziarski*
1697
1698 * UrlWriter respects relative_url_root. #10748 *Cheah Chu Yeow*
1699
1700 * The asset_host block takes the controller request as an optional second argument. Example: use a single asset host for SSL requests. #10549 *Cheah Chu Yeow, Peter B, Tom Taylor*
1701
1702 * Support render :text => nil. #6684 *tjennings, PotatoSalad, Cheah Chu Yeow*
1703
1704 * assert_response failures include the exception message. #10688 *Seth Rasmussen*
1705
1706 * All fragment cache keys are now by default prefixed with the "views/" namespace *David Heinemeier Hansson*
1707
1708 * Moved the caching stores from ActionController::Caching::Fragments::* to ActiveSupport::Cache::*. If you're explicitly referring to a store, like ActionController::Caching::Fragments::MemoryStore, you need to update that reference with ActiveSupport::Cache::MemoryStore *David Heinemeier Hansson*
1709
1710 * Deprecated ActionController::Base.fragment_cache_store for ActionController::Base.cache_store *David Heinemeier Hansson*
1711
1712 * Made fragment caching in views work for rjs and builder as well #6642 *Dee Zsombor*
1713
1714 * Fixed rendering of partials with layout when done from site layout #9209 *antramm*
1715
1716 * Fix atom_feed_helper to comply with the atom spec. Closes #10672 *Xavier Shay*
1717
1718 * The tags created do not contain a date (http://feedvalidator.org/docs/error/InvalidTAG.html)
1719 * IDs are not guaranteed unique
1720 * A default self link was not provided, contrary to the documentation
1721 * NOTE: This changes tags for existing atom entries, but at least they validate now.
1722
1723 * Correct indentation in tests. Closes #10671 *Luca Guidi*
1724
1725 * Fix that auto_link looks for ='s in url paths (Amazon urls have them). Closes #10640 *Brad Greenlee*
1726
1727 * Ensure that test case setup is run even if overridden. #10382 *Josh Peek*
1728
1729 * Fix HTML Sanitizer to allow trailing spaces in CSS style attributes. Closes #10566 *wesley.moxam*
1730
1731 * Add :default option to time_zone_select. #10590 *Matt Aimonetti*
1732
1733
1734 ## 2.0.2 (December 16th, 2007) ##
1735
1736 * Added delete_via_redirect and put_via_redirect to integration testing #10497 *philodespotos*
1737
1738 * Allow headers['Accept'] to be set by hand when calling xml_http_request #10461 *BMorearty*
1739
1740 * Added OPTIONS to list of default accepted HTTP methods #10449 *holoway*
1741
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1742 * Added option to pass proc to ActionController::Base.asset_host for maximum configurability #10521 *Cheah Chu Yeow*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1743
1744 ActionController::Base.asset_host = Proc.new { |source|
1745 if source.starts_with?('/images')
1746 "http://images.example.com"
1747 else
1748 "http://assets.example.com"
1749 end
1750 }
1751
1752 * Fixed that ActionView#file_exists? would be incorrect if @first_render is set #10569 *dbussink*
1753
1754 * Added that Array#to_param calls to_param on all it's elements #10473 *brandon*
1755
1756 * Ensure asset cache directories are automatically created. #10337 *Josh Peek, Cheah Chu Yeow*
1757
1758 * render :xml and :json preserve custom content types. #10388 *jmettraux, Cheah Chu Yeow*
1759
1760 * Refactor Action View template handlers. #10437, #10455 *Josh Peek*
1761
1762 * Fix DoubleRenderError message and leave out mention of returning false from filters. Closes #10380 *Frederick Cheung*
1763
1764 * Clean up some cruft around ActionController::Base#head. Closes #10417 *ssoroka*
1765
1766
1767 ## 2.0.1 (December 7th, 2007) ##
1768
1769 * Fixed send_file/binary_content for testing #8044 *tolsen*
1770
1771 * When a NonInferrableControllerError is raised, make the proposed fix clearer in the error message. Closes #10199 *Jack Danger Canty*
1772
1773 * Update Prototype to 1.6.0.1. *sam*
1774
1775 * Update script.aculo.us to 1.8.0.1. *madrobby*
1776
1777 * Add 'disabled' attribute to <OPTION> separators used in time zone and country selects. Closes #10354 *Josh Susser*
1778
1779 * Added the same record identification guessing rules to fields_for as form_for has *David Heinemeier Hansson*
1780
1781 * Fixed that verification violations with no specified action didn't halt the chain (now they do with a 400 Bad Request) *David Heinemeier Hansson*
1782
1783 * Raise UnknownHttpMethod exception for unknown HTTP methods. Closes #10303 *Tarmo Tänav*
1784
1785 * Update to Prototype -r8232. *sam*
1786
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1787 * Make sure the optimisation code for routes doesn't get used if :host, :anchor or :port are provided in the hash arguments. *pager, Michael Koziarski* #10292
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1788
1789 * Added protection from trailing slashes on page caching #10229 *devrieda*
1790
1791 * Asset timestamps are appended, not prepended. Closes #10276 *Mike Naberezny*
1792
1793 * Minor inconsistency in description of render example. Closes #10029 *ScottSchram*
1794
1795 * Add #prepend_view_path and #append_view_path instance methods on ActionController::Base for consistency with the class methods. *Rick Olson*
1796
1797 * Refactor sanitizer helpers into HTML classes and make it easy to swap them out with custom implementations. Closes #10129. *Rick Olson*
1798
1799 * Add deprecation for old subtemplate syntax for ActionMailer templates, use render :partial *Rick Olson*
1800
1801 * Fix TemplateError so it doesn't bomb on exceptions while running tests *Rick Olson*
1802
1803 * Fixed that named routes living under resources shouldn't have double slashes #10198 *Isaac Feliu*
1804
1805 * Make sure that cookie sessions use a secret that is at least 30 chars in length. *Michael Koziarski*
1806
1807 * 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*
1808
1809 * Fixed that has_many :through associations should render as collections too #9051 *mathie/Jack Danger Canty*
1810
1811 * Added :mouseover short-cut to AssetTagHelper#image_tag for doing easy image swaps #6893 *joost*
1812
1813 * Fixed handling of non-domain hosts #9479 *purp*
1814
1815 * Fix syntax error in documentation example for cycle method. Closes #8735 *foca*
1816
1817 * Document :with option for link_to_remote. Closes #8765 *Ryan Bates*
1818
1819 * Document :minute_step option for time_select. Closes #8814 *brupm*
1820
1821 * Explain how to use the :href option for link_to_remote to degrade gracefully in the absence of JavaScript. Closes #8911 *vlad*
1822
1823 * Disambiguate :size option for text area tag. Closes #8955 *redbeard*
1824
1825 * Fix broken tag in assert_tag documentation. Closes #9037 *mfazekas*
1826
1827 * Add documentation for route conditions. Closes #9041 *innu, Manfred Stienstra*
1828
1829 * Fix typo left over from previous typo fix in url helper. Closes #9414 *Henrik N*
1830
1831 * Fixed that ActionController::CgiRequest#host_with_port() should handle standard port #10082 *moro*
1832
1833 * Update Prototype to 1.6.0 and script.aculo.us to 1.8.0. *sam, madrobby*
1834
1835 * Expose the cookie jar as a helper method (before the view would just get the raw cookie hash) *David Heinemeier Hansson*
1836
1837 * Integration tests: get_ and post_via_redirect take a headers hash. #9130 *simonjefford*
1838
1839 * Simplfy #view_paths implementation. ActionView templates get the exact object, not a dup. *Rick Olson*
1840
1841 * Update tests for ActiveSupport's JSON escaping change. *Rick Olson*
1842
1843 * FormHelper's auto_index should use #to_param instead of #id_before_type_cast. Closes #9994 *mattly*
1844
1845 * Doc typo fixes for ActiveRecordHelper. Closes #9973 *mikong*
1846
1847 * Make example parameters in restful routing docs idiomatic. Closes #9993 *Jack Danger Canty*
1848
1849 * Make documentation comment for mime responders match documentation example. Closes #9357 *yon*
1850
1851 * Introduce a new test case class for functional tests. ActionController::TestCase. *Michael Koziarski*
1852
1853 * Fix incorrect path in helper rdoc. Closes #9926 *viktor tron*
1854
1855 * Partials also set 'object' to the default partial variable. #8823 *Nick Retallack, Jeremy Kemper*
1856
1857 * Request profiler. *Jeremy Kemper*
1858 $ cat login_session.rb
1859 get_with_redirect '/'
1860 say "GET / => #{path}"
1861 post_with_redirect '/sessions', :username => 'john', :password => 'doe'
1862 say "POST /sessions => #{path}"
1863 $ ./script/performance/request -n 10 login_session.rb
1864
1865 * Disabled checkboxes don't submit a form value. #9301 *vladr, robinjfisher*
1866
1867 * Added tests for options to ActiveRecordHelper#form. Closes #7213 *richcollins, mikong, Mislav Marohnić*
1868
1869 * Changed before_filter halting to happen automatically on render or redirect but no longer on simply returning false *David Heinemeier Hansson*
1870
1871 * Ensure that cookies handle array values correctly. Closes #9937 *queso*
1872
1873 * Make sure resource routes don't clash with internal helpers like javascript_path, image_path etc. #9928 *Geoff Buesing*
1874
1875 * caches_page uses a single after_filter instead of one per action. #9891 *Pratik Naik*
1876
1877 * Update Prototype to 1.6.0_rc1 and script.aculo.us to 1.8.0 preview 0. *sam, madrobby*
1878
1879 * Dispatcher: fix that to_prepare should only run once in production. #9889 *Nathaniel Talbott*
1880
1881 * Memcached sessions: add session data on initialization; don't silently discard exceptions; add unit tests. #9823 *kamk*
1882
1883 * error_messages_for also takes :message and :header_message options which defaults to the old "There were problems with the following fields:" and "<count> errors prohibited this <object_name> from being saved". #8270 *rmm5t, zach-inglis-lt3*
1884
1885 * Make sure that custom inflections are picked up by map.resources. #9815 *Mislav Marohnić*
1886
1887 * Changed SanitizeHelper#sanitize to only allow the custom attributes and tags when specified in the call *David Heinemeier Hansson*
1888
1889 * Extracted sanitization methods from TextHelper to SanitizeHelper *David Heinemeier Hansson*
1890
1891 * rescue_from accepts :with => lambda { |exception| ... } or a normal block. #9827 *Pratik Naik*
1892
1893 * Add :status to redirect_to allowing users to choose their own response code without manually setting headers. #8297 *Coda Hale, chasgrundy*
1894
1895 * Add link_to :back which uses your referrer with a fallback to a javascript link. #7366 *eventualbuddha, Tarmo Tänav*
1896
1897 * error_messages_for and friends also work with local variables. #9699 *Frederick Cheung*
1898
1899 * Fix url_for, redirect_to, etc. with :controller => :symbol instead of 'string'. #8562, #9525 *Justin Lynn, Tarmo Tänav, shoe*
1900
1901 * Use #require_library_or_gem to load the memcache library for the MemCache session and fragment cache stores. Closes #8662. *Rick Olson*
1902
1903 * Move ActionController::Routing.optimise_named_routes to ActionController::Base.optimise_named_routes. Now you can set it in the config. *Rick Olson*
1904
1905 config.action_controller.optimise_named_routes = false
1906
1907 * ActionController::Routing::DynamicSegment#interpolation_chunk should call #to_s on all values before calling URI.escape. *Rick Olson*
1908
1909 * Only accept session ids from cookies, prevents session fixation attacks. *bradediger*
1910
1911
1912 ## 2.0.0 Preview Release (September 29th, 2007) Includes duplicates of changes from 1.12.2 - 1.13.3 ##
1913
1914 * Fixed that render template did not honor exempt_from_layout #9698 *pezra*
1915
1916 * Better error messages if you leave out the :secret option for request forgery protection. Closes #9670 *Rick Olson*
1917
1918 * Allow ability to disable request forgery protection, disable it in test mode by default. Closes #9693 *Pratik Naik*
1919
1920 * Avoid calling is_missing on LoadErrors. Closes #7460. *ntalbott*
1921
1922 * Move Railties' Dispatcher to ActionController::Dispatcher, introduce before_ and after_dispatch callbacks, and warm up to non-CGI requests. *Jeremy Kemper*
1923
1924 * The tag helper may bypass escaping. *Jeremy Kemper*
1925
1926 * Cache asset ids. *Jeremy Kemper*
1927
1928 * Optimized named routes respect AbstractRequest.relative_url_root. #9612 *Daniel Morrison, Jeremy Kemper*
1929
1930 * Introduce ActionController::Base.rescue_from to declare exception-handling methods. Cleaner style than the case-heavy rescue_action_in_public. #9449 *Norbert Crombach*
1931
1932 * Rename some RequestForgeryProtection methods. The class method is now #protect_from_forgery, and the default parameter is now 'authenticity_token'. *Rick Olson*
1933
1934 * Merge csrf_killer plugin into rails. Adds RequestForgeryProtection model that verifies session-specific _tokens for non-GET requests. *Rick Olson*
1935
1936 * Secure #sanitize, #strip_tags, and #strip_links helpers against xss attacks. Closes #8877. *Rick Olson, Pratik Naik, Jacques Distler*
1937
1938 This merges and renames the popular white_list helper (along with some css sanitizing from Jacques Distler version of the same plugin).
1939 Also applied updated versions of #strip_tags and #strip_links from #8877.
1940
1941 * Remove use of & logic operator. Closes #8114. *watson*
1942
1943 * Fixed JavaScriptHelper#escape_javascript to also escape closing tags #8023 *Ruy Asan*
1944
1945 * Fixed TextHelper#word_wrap for multiline strings with extra carrier returns #8663 *seth*
1946
1947 * Fixed that setting the :host option in url_for would automatically turn off :only_path (since :host would otherwise not be shown) #9586 *Bounga*
1948
1949 * Added FormHelper#label. #8641, #9850 *jcoglan, Jarkko Laine*
1950
1951 * Added AtomFeedHelper (slightly improved from the atom_feed_helper plugin) *David Heinemeier Hansson*
1952
1953 * Prevent errors when generating routes for uncountable resources, (i.e. sheep where plural == singluar). map.resources :sheep now creates sheep_index_url for the collection and sheep_url for the specific item. *Michael Koziarski*
1954
1955 * Added support for HTTP Only cookies (works in IE6+ and FF 2.0.5+) as an improvement for XSS attacks #8895 *Pratik Naik, Mark Somerville*
1956
1957 * Don't warn when a path segment precedes a required segment. Closes #9615. *Nicholas Seckar*
1958
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1959 * Fixed CaptureHelper#content_for to work with the optional content parameter instead of just the block #9434 *sandofsky/wildchild*.
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1960
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1961 * Added Mime::Type.register_alias for dealing with different formats using the same mime type *DHH*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1962
1963 class PostsController < ApplicationController
1964 before_filter :adjust_format_for_iphone
1965
1966 def index
1967 @posts = Post.find(:all)
1968
1969 respond_to do |format|
1970 format.html # => renders index.html.erb and uses "text/html" as the content type
1971 format.iphone # => renders index.iphone.erb and uses "text/html" as the content type
1972 end
1973 end
1974
1975
1976 private
1977 def adjust_format_for_iphone
1978 if request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/iPhone/]
1979 request.format = :iphone
1980 end
1981 end
1982 end
1983
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
1984 * Added that render :json will automatically call .to_json unless it's being passed a string *DHH*.
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
1985
1986 * Autolink behaves well with emails embedded in URLs. #7313 *Jeremy McAnally, Tarmo Tänav*
1987
1988 * Fixed that default layouts did not take the format into account #9564 *Pratik Naik*
1989
1990 * Fixed optimized route segment escaping. #9562 *wildchild, Jeremy Kemper*
1991
1992 * Added block acceptance to JavaScriptHelper#javascript_tag. #7527 *Bob Silva, Tarmo Tänav, rmm5t*
1993
1994 * root_path returns '/' not ''. #9563 *Pratik Naik*
1995
1996 * Fixed that setting request.format should also affect respond_to blocks *David Heinemeier Hansson*
1997
1998 * Add option to force binary mode on tempfile used for fixture_file_upload. #6380 *Jonathan Viney*
1999
2000 * Fixed that resource namespaces wouldn't stick to all nested resources #9399 *pixeltrix*
2001
2002 * Moved ActionController::Macros::AutoComplete into the auto_complete plugin on the official Rails svn. #9512 *Pratik Naik*
2003
2004 * Moved ActionController::Macros::InPlaceEditing into the in_place_editor plugin on the official Rails svn. #9513 *Pratik Naik*
2005
2006 * Removed deprecated form of calling xml_http_request/xhr without the first argument being the http verb *David Heinemeier Hansson*
2007
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2008 * Removed deprecated methods *DHH*:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2009
2010 - ActionController::Base#keep_flash (use flash.keep instead)
2011 - ActionController::Base#expire_matched_fragments (just call expire_fragment with a regular expression)
2012 - ActionController::Base.template_root/= methods (use ActionController#Base.view_paths/= instead)
2013 - ActionController::Base.cookie (use ActionController#Base.cookies[]= instead)
2014
2015 * Removed the deprecated behavior of appending ".png" to image_tag/image_path calls without an existing extension *David Heinemeier Hansson*
2016
2017 * Removed ActionController::Base.scaffold -- it went through the whole idea of scaffolding (card board walls you remove and tweak one by one). Use the scaffold generator instead (it does resources too now!) *David Heinemeier Hansson*
2018
2019 * Optimise named route generation when using positional arguments. *Michael Koziarski*
2020
2021 This change delivers significant performance benefits for the most
2022 common usage scenarios for modern rails applications by avoiding the
2023 costly trip through url_for. Initial benchmarks indicate this is
2024 between 6 and 20 times as fast.
2025
2026 * Explicitly require active_record/query_cache before using it. *Jeremy Kemper*
2027
2028 * Fix layout overriding response status. #9476 *lotswholetime*
2029
2030 * Add field_set_tag for generating field_sets, closes #9477. *Damian Janowski*
2031
2032 * Allow additional parameters to be passed to named route helpers when using positional arguments. Closes #8930 *Ian White*
2033
2034 * Make render :partial work with a :collection of Hashes, previously this wasn't possible due to backwards compatibility restrictions. *Pratik Naik*
2035
2036 * request.host works with IPv6 addresses. #9458 *yuya*
2037
2038 * Fix bug where action caching sets the content type to the ActionCachePath object. Closes #9282 *mindforge*
2039
2040 * Find layouts even if they're not in the first view_paths directory. Closes #9258 *caio*
2041
2042 * Major improvement to the documentation for the options / select form helpers. Closes #9038 *Chris Kampmeier, jardeon, wesg*
2043
2044 * Fix number_to_human_size when using different precisions. Closes #7536. *RichardStrand, mpalmer*
2045
2046 * Added partial layouts (see example in action_view/lib/partials.rb) *David Heinemeier Hansson*
2047
2048 * Allow you to set custom :conditions on resource routes. *Rick Olson*
2049
2050 * Fixed that file.content_type for uploaded files would include a trailing \r #9053 *Brad Greenlee*
2051
2052 * url_for now accepts a series of symbols representing the namespace of the record *Josh Knowles*
2053
2054 * Make :trailing_slash work with query parameters for url_for. Closes #4004 *nov*
2055
2056 * Make sure missing template exceptions actually say which template they were looking for. Closes #8683 *dasil003*
2057
2058 * Fix errors with around_filters which do not yield, restore 1.1 behaviour with after filters. Closes #8891 *Stefan Kaes*
2059
2060 After filters will *no longer* be run if an around_filter fails to yield, users relying on
2061 this behaviour are advised to put the code in question after a yield statement in an around filter.
2062
2063
2064 * Allow you to delete cookies with options. Closes #3685 *Josh Peek, Chris Wanstrath*
2065
2066 * Allow you to render views with periods in the name. Closes #8076 *Norbert Crombach*
2067
2068 render :partial => 'show.html.erb'
2069
2070 * Improve capture helper documentation. #8796 *Chris Kampmeier*
2071
2072 * Prefix nested resource named routes with their action name, e.g. new_group_user_path(@group) instead of group_new_user_path(@group). The old nested action named route is deprecated in Rails 1.2.4. #8558 *David Chelimsky*
2073
2074 * Allow sweepers to be created solely for expiring after controller actions, not model changes *David Heinemeier Hansson*
2075
2076 * Added assigns method to ActionController::Caching::Sweeper to easily access instance variables on the controller *David Heinemeier Hansson*
2077
2078 * Give the legacy X-POST_DATA_FORMAT header greater precedence during params parsing for backward compatibility. *Jeremy Kemper*
2079
2080 * Fixed that link_to with an href of # when using :method will not allow for click-through without JavaScript #7037 *Steven Bristol, Josh Peek*
2081
2082 * Fixed that radio_button_tag should generate unique ids #3353 *Bob Silva, Rebecca, Josh Peek*
2083
2084 * Fixed that HTTP authentication should work if the header is called REDIRECT_X_HTTP_AUTHORIZATION as well #6754 *Mislav Marohnić*
2085
2086 * Don't mistakenly interpret the request uri as the query string. #8731 *Pratik Naik, Jeremy Kemper*
2087
2088 * Make ActionView#view_paths an attr_accessor for real this time. Also, don't perform an unnecessary #compact on the @view_paths array in #initialize. Closes #8582 *dasil003, julik, Rick Olson*
2089
2090 * Tolerate missing content type on multipart file uploads. Fix for Safari 3. *Jeremy Kemper*
2091
2092 * Deprecation: remove pagination. Install the classic_pagination plugin for forward compatibility, or move to the superior will_paginate plugin. #8157 *Josh Peek*
2093
2094 * Action caching is limited to GET requests returning 200 OK status. #3335 *tom@craz8.com, halfbyte, Dan Kubb, Josh Peek*
2095
2096 * Improve Text Helper test coverage. #7274 *Rob Sanheim, Josh Peek*
2097
2098 * Improve helper test coverage. #7208, #7212, #7215, #7233, #7234, #7235, #7236, #7237, #7238, #7241, #7243, #7244 *Rich Collins, Josh Peek*
2099
2100 * Improve UrlRewriter tests. #7207 *Rich Collins*
2101
2102 * Resources: url_for([parent, child]) generates /parents/1/children/2 for the nested resource. Likewise with the other simply helpful methods like form_for and link_to. #6432 *mhw, Jonathan Vaught, lotswholetime*
2103
2104 * Assume html format when rendering partials in RJS. #8076 *Rick Olson*
2105
2106 * Don't double-escape url_for in views. #8144 *Rich Collins, Josh Peek*
2107
2108 * Allow JSON-style values for the :with option of observe_field. Closes #8557 *kommen*
2109
2110 * Remove RAILS_ROOT from backtrace paths. #8540 *Tim Pope*
2111
2112 * Routing: map.resource :logo routes to LogosController so the controller may be reused for multiple nestings or namespaces. *Jeremy Kemper*
2113
2114 * render :partial recognizes Active Record associations as Arrays. #8538 *Kamal Fariz Mahyuddin*
2115
2116 * Routing: drop semicolon and comma as route separators. *Jeremy Kemper*
2117
2118 * request.remote_ip understands X-Forwarded-For addresses with nonstandard whitespace. #7386 *moses*
2119
2120 * Don't prepare response when rendering a component. #8493 *jsierles*
2121
2122 * Reduce file stat calls when checking for template changes. #7736 *alex*
2123
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2124 * Added custom path cache_page/expire_page parameters in addition to the options hashes *DHH*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2125
2126 def index
2127 caches_page(response.body, "/index.html")
2128 end
2129
2130 * Action Caching speedup. #8231 *Stefan Kaes*
2131
2132 * Wordsmith resources documentation. #8484 *marclove*
2133
2134 * Fix syntax error in code example for routing documentation. #8377. *Norbert Crombach*
2135
2136 * Routing: respond with 405 Method Not Allowed status when the route path matches but the HTTP method does not. #6953 *Josh Peek, defeated, Dan Kubb, Coda Hale*
2137
2138 * Add support for assert_select_rjs with :show and :hide. #7780 *dchelimsky*
2139
2140 * Make assert_select's failure messages clearer about what failed. #7779 *dchelimsky*
2141
2142 * Introduce a default respond_to block for custom types. #8174 *Josh Peek*
2143
2144 * auto_complete_field takes a :method option so you can GET or POST. #8120 *zapnap*
2145
2146 * Added option to suppress :size when using :maxlength for FormTagHelper#text_field #3112 *Tim Pope*
2147
2148 * catch possible WSOD when trying to render a missing partial. Closes #8454 *Jonathan del Strother*
2149
2150 * Rewind request body after reading it, if possible. #8438 *s450r1*
2151
2152 * Resource namespaces are inherited by their has_many subresources. #8280 *marclove, Geoff Garside*
2153
2154 * Fix filtered parameter logging with nil parameter values. #8422 *choonkeat*
2155
2156 * Integration tests: alias xhr to xml_http_request and add a request_method argument instead of always using POST. #7124 *Nik Wakelin, François Beausoleil, Wizard*
2157
2158 * Document caches_action. #5419 *Jarkko Laine*
2159
2160 * Update to Prototype 1.5.1. *Sam Stephenson*
2161
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2162 * Allow routes to be decalred under namespaces *Tobias Lütke*:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2163
2164 map.namespace :admin do |admin|
2165 admin.root :controller => "products"
2166 admin.feed 'feed.xml', :controller => 'products', :action => 'feed', :format => 'xml'
2167 end
2168
2169 * Update to script.aculo.us 1.7.1_beta3. *Thomas Fuchs*
2170
2171 * observe_form always sends the serialized form. #5271 *Manfred Stienstra, normelton@gmail.com*
2172
2173 * Parse url-encoded and multipart requests ourselves instead of delegating to CGI. *Jeremy Kemper*
2174
2175 * select :include_blank option can be set to a string instead of true, which just uses an empty string. #7664 *Wizard*
2176
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2177 * Added url_for usage on render :location, which allows for record identification *DHH*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2178
2179 render :xml => person, :status => :created, :location => person
2180
2181 ...expands the location to person_url(person).
2182
2183 * Introduce the request.body stream. Lazy-read to parse parameters rather than always setting RAW_POST_DATA. Reduces the memory footprint of large binary PUT requests. *Jeremy Kemper*
2184
2185 * Add some performance enhancements to ActionView.
2186
2187 * Cache base_paths in @@cached_base_paths
2188 * Cache template extensions in @@cached_template_extension
2189 * Remove unnecessary rescues
2190
2191 * Assume that rendered partials go by the HTML format by default
2192
2193 def my_partial
2194 render :update do |page|
2195 # in this order
2196 # _foo.html.erb
2197 # _foo.erb
2198 # _foo.rhtml
2199 page.replace :foo, :partial => 'foo'
2200 end
2201 end
2202
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2203 * Added record identifications to FormHelper#form_for and PrototypeHelper#remote_form_for *DHH*. Examples:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2204
2205 <% form_for(@post) do |f| %>
2206 ...
2207 <% end %>
2208
2209 This will expand to be the same as:
2210
2211 <% form_for :post, @post, :url => post_path(@post), :html => { :method => :put, :class => "edit_post", :id => "edit_post_45" } do |f| %>
2212 ...
2213 <% end %>
2214
2215 And for new records:
2216
2217 <% form_for(Post.new) do |f| %>
2218 ...
2219 <% end %>
2220
2221 This will expand to be the same as:
2222
2223 <% form_for :post, @post, :url => posts_path, :html => { :class => "new_post", :id => "new_post" } do |f| %>
2224 ...
2225 <% end %>
2226
2227 * Rationalize route path escaping according to RFC 2396 section 3.3. #7544, #8307. *Jeremy Kemper, Chris Roos, begemot, jugend*
2228
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2229 * Added record identification with polymorphic routes for ActionController::Base#url_for and ActionView::Base#url_for *DHH*. Examples:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2230
2231 redirect_to(post) # => redirect_to(posts_url(post)) => Location: http://example.com/posts/1
2232 link_to(post.title, post) # => link_to(post.title, posts_url(post)) => <a href="/posts/1">Hello world</a>
2233
2234 Any method that calls url_for on its parameters will automatically benefit from this.
2235
2236 * Removed deprecated parameters_for_method_reference concept (legacy from before named routes) *David Heinemeier Hansson*
2237
2238 * Add ActionController::Routing::Helpers, a module to contain common URL helpers such as polymorphic_url. *Nicholas Seckar*
2239
2240 * Included the HttpAuthentication plugin as part of core (ActionController::HttpAuthentication::Basic) *David Heinemeier Hansson*
2241
2242 * Modernize documentation for form helpers. *Jeremy McAnally*
2243
2244 * Add brief introduction to REST to the resources documentation. *fearoffish*
2245
2246 * Fix various documentation typos throughout ActionPack. *Henrik N*
2247
2248 * Enhance documentation and add examples for url_for. *Jeremy McAnally*
2249
2250 * Fix documentation typo in routes. *Norbert Crombach, pam*
2251
2252 * Sweep flash when filter chain is halted. *Caio Chassot <lists@v2studio.com>*
2253
2254 * Fixed that content_tag with a block will just return the result instead of concate it if not used in a ERb view #7857, #7432 *michael.niessner*
2255
2256 * Replace the current block/continuation filter chain handling by an implementation based on a simple loop. #8226 *Stefan Kaes*
2257
2258 * Update UrlWriter to accept :anchor parameter. Closes #6771. *Chris McGrath*
2259
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2260 * Added RecordTagHelper for using RecordIdentifier conventions on divs and other container elements *DHH*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2261
2262 <% div_for(post) do %> <div id="post_45" class="post">
2263 <%= post.body %> What a wonderful world!
2264 <% end %> </div>
2265
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2266 * Added page[record] accessor to JavaScriptGenerator that relies on RecordIdentifier to find the right dom id *DHH*. Example:
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2267
2268 format.js do
2269 # Calls: new Effect.fade('post_45');
2270 render(:update) { |page| page[post].visual_effect(:fade) }
2271 end
2272
2273 * Added RecordIdentifier to enforce view conventions on records for dom ids, classes, and partial paths *David Heinemeier Hansson*
2274
2275 * Added map.namespace to deal with the common situation of admin sections and the like *David Heinemeier Hansson*
2276
2277 Before:
2278
2279 map.resources :products, :path_prefix => "admin", :controller => "admin/products", :collection => { :inventory => :get }, :member => { :duplicate => :post }
2280 map.resources :tags, :name_prefix => 'admin_product_', :path_prefix => "admin/products/:product_id", :controller => "admin/product_tags"
2281 map.resources :images, :name_prefix => 'admin_product_', :path_prefix => "admin/products/:product_id", :controller => "admin/product_images"
2282 map.resources :variants, :name_prefix => 'admin_product_', :path_prefix => "admin/products/:product_id", :controller => "admin/product_variants"
2283
2284 After:
2285
2286 map.namespace(:admin) do |admin|
2287 admin.resources :products,
2288 :collection => { :inventory => :get },
2289 :member => { :duplicate => :post },
2290 :has_many => [ :tags, :images, :variants ]
2291 end
2292
84054a7 @joneslee85 Fix typos and formats for CHANGELOG
joneslee85 authored
2293 * Added :name_prefix as standard for nested resources *DHH*. WARNING: May be backwards incompatible with your app
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
2294
2295 Before:
2296
2297 map.resources :emails do |emails|
2298 emails.resources :comments, :name_prefix => "email_"
2299 emails.resources :attachments, :name_prefix => "email_"
2300 end
2301
2302 After:
2303
2304 map.resources :e