Skip to content

HTTPS clone URL

Subversion checkout URL

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