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