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