Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 469 lines (291 sloc) 14.185 kb
0fb6bbd @rafaelfranca Merge pull request #7140 from seamusabshere/patch-1
rafaelfranca authored
1 ## Rails 3.2.9 (unreleased)
6abe0e7 @rafaelfranca Backport explain fixes.
rafaelfranca authored
2
cdfa4a5 @carlosantoniodasilva Merge pull request #8053 from henrik/update_columns_with_primary_key
carlosantoniodasilva authored
3 * Fix bug where `update_columns` and `update_column` would not let you update the primary key column.
4
5 *Henrik Nyh*
6
a119dd3 @rafaelfranca Merge pull request #7593 from veader/patch-1
rafaelfranca authored
7 * Decode URI encoded attributes on database connection URLs.
8
9 *Shawn Veader*
10
9a38e73 @spastorino Merge pull request #7371 from csmuc/fix_dup_validation_errors
spastorino authored
11 * Fix AR#dup to nullify the validation errors in the dup'ed object. Previously the original
12 and the dup'ed object shared the same errors.
13
14 * Christian Seiler*
15
d92e66f @tenderlove Synchronize around deleting from the reserved connections hash.
tenderlove authored
16 * Synchronize around deleting from the reserved connections hash.
17 Fixes #7955
18
3980465 @arturopie #7914 get default value when type uses schema name
arturopie authored
19 * PostgreSQL adapter correctly fetches default values when using
20 multiple schemas and domains in a db. Fixes #7914
21
22 *Arturo Pie*
23
990a938 @ernie Fix has_many assocation w/select load after create
ernie authored
24 * Fix deprecation notice when loading a collection association that
25 selects columns from other tables, if a new record was previously
26 built using that association.
27
28 *Ernie Miller*
29
de360ac @rafaelfranca Merge pull request #7850 from senny/5920_postgres_adapter_table_with_cap...
rafaelfranca authored
30 * The postgres adapter now supports tables with capital letters.
31 Fix #5920
32
33 *Yves Senn*
34
35 * `CollectionAssociation#count` returns `0` without querying if the
36 parent record is not persisted.
9896729 @rafaelfranca Merge pull request #6978 from frodsan/count_nosql_unsaved_parent
rafaelfranca authored
37
38 Before:
39
de360ac @rafaelfranca Merge pull request #7850 from senny/5920_postgres_adapter_table_with_cap...
rafaelfranca authored
40 person.pets.count
9896729 @rafaelfranca Merge pull request #6978 from frodsan/count_nosql_unsaved_parent
rafaelfranca authored
41 # SELECT COUNT(*) FROM "pets" WHERE "pets"."person_id" IS NULL
42 # => 0
43
44 After:
45
de360ac @rafaelfranca Merge pull request #7850 from senny/5920_postgres_adapter_table_with_cap...
rafaelfranca authored
46 person.pets.count
9896729 @rafaelfranca Merge pull request #6978 from frodsan/count_nosql_unsaved_parent
rafaelfranca authored
47 # fires without sql query
48 # => 0
49
50 *Francesco Rodriguez*
51
3f0bc97 @rafaelfranca Merge pull request #7822 from lulalala/reset-counter-cache-for-has-many-...
rafaelfranca authored
52 * Fix `reset_counters` crashing on `has_many :through` associations.
53 Fix #7822.
54
55 *lulalala*
56
3908706 @jrochkind ConnectionPool accepts spec key 'checkout_timeout'
jrochkind authored
57 * ConnectionPool recognizes checkout_timeout spec key as taking
58 precedence over legacy wait_timeout spec key, can be used to avoid
59 conflict with mysql2 use of wait_timeout. Closes #7684.
60
61 *jrochkind*
62
b8fba55 @tenderlove Merge pull request #3544 from amatsuda/_field_changed
tenderlove authored
63 * Rename field_changed? to _field_changed? so that users can create a field named field
64
65 *Akira Matsuda*, backported by *Steve Klabnik*
66
ee43989 @rafaelfranca Merge pull request #7661 from ernie/build-join-records-on-unsaved-hmt
rafaelfranca authored
67 * Fix creation of through association models when using `collection=[]`
68 on a `has_many :through` association from an unsaved model.
69 Fix #7661.
70
71 *Ernie Miller*
72
6abe0e7 @rafaelfranca Backport explain fixes.
rafaelfranca authored
73 * Explain only normal CRUD sql (select / update / insert / delete).
74 Fix problem that explains unexplainable sql. Closes #7544 #6458.
75
76 *kennyj*
77
f48bb01 Backport PostgreSQL auto-reconnect test coverage
Steve Jorgensen authored
78 * Backport test coverage to ensure that PostgreSQL auto-reconnect functionality
79 remains healthy.
80
2326d46 @frodsan fix markdown markup in AR/CHANGELOG
frodsan authored
81 *Steve Jorgensen*
f48bb01 Backport PostgreSQL auto-reconnect test coverage
Steve Jorgensen authored
82
9630485 @kennyj Backported #7572 to 3-2-stable. Use config['encoding'], because database...
kennyj authored
83 * Use config['encoding'] instead of config['charset'] when executing
84 databases.rake in the mysql/mysql2. A correct option for a database.yml
85 is 'encoding'.
86
87 *kennyj*
88
652107e @tchandy ConnectionAdapters::Column.type_cast_code should always convert values t...
tchandy authored
89 * Fix ConnectionAdapters::Column.type_cast_code integer conversion,
90 to always convert values to integer calling #to_i. Fixes #7509.
91
92 *Thiago Pradi*
0fb6bbd @rafaelfranca Merge pull request #7140 from seamusabshere/patch-1
rafaelfranca authored
93
5054e26 @rafaelfranca Merge pull request #7337 from adzap/string_to_dummy_time
rafaelfranca authored
94 * Fix time column type casting for invalid time string values to correctly return nil.
95
96 *Adam Meehan*
97
01d09a6 @senny set the configured #inheritance_column on #become (#7503)
senny authored
98 * Fix `becomes` when using a configured `inheritance_column`.
99
100 *Yves Senn*
101
648c5a1 @rafaelfranca Merge pull request #5210 from Pliny/masteri
rafaelfranca authored
102 * Fix `reset_counters` when there are multiple `belongs_to` association with the
103 same foreign key and one of them have a counter cache.
104 Fixes #5200.
105
106 *Dave Desrochers*
107
8905c1f @rafaelfranca Merge pull request #6986 from kennyj/fix_6975
rafaelfranca authored
108 * Round usec when comparing timestamp attributes in the dirty tracking.
109 Fixes #6975.
110
111 *kennyj*
112
fdf4eae @carlosantoniodasilva Merge pull request #7377 from brainopia/use_inversed_parent_for_first_an...
carlosantoniodasilva authored
113 * Use inversed parent for first and last child of has_many association.
114
115 *Ravil Bayramgalin*
116
d6dbd7f @rafaelfranca Merge pull request #7352 from aripollak/microsecond-timestamp
rafaelfranca authored
117 * Fix Column.microseconds and Column.fast_string_to_date to avoid converting
118 timestamp seconds to a float, since it occasionally results in inaccuracies
119 with microsecond-precision times. Fixes #7352.
120
121 *Ari Pollak*
122
8055cd6 @rafaelfranca Do not use update_column where update_attribute is not interchangeable
rafaelfranca authored
123 * Fix `increment!`, `decrement!`, `toggle!` that was skipping callbacks.
124 Fixes #7306.
125
126 *Rafael Mendonça França*
127
786713a @rafaelfranca Merge pull request #6073 from daveyeu/restore-state-on-record-invalid
rafaelfranca authored
128 * Fix AR#create to return an unsaved record when AR::RecordInvalid is
129 raised. Fixes #3217.
130
131 *Dave Yeu*
132
3307a2e @rafaelfranca Add CHANGELOG entry for #7286
rafaelfranca authored
133 * Remove unnecessary transaction when assigning has_one associations with a nil or equal value.
134 Fix #7191.
135
136 *kennyj*
137
5c2fc69 @rafaelfranca Add CHANGELOG entry
rafaelfranca authored
138 * Allow store to work with an empty column.
139 Fix #4840.
140
141 *Jeremy Walker*
142
ea48732 @rafaelfranca Add CHANGELOG entry for a935c7a
rafaelfranca authored
143 * Remove prepared statement from system query in postgresql adapter.
144 Fix #5872.
145
146 *Ivan Evtuhovich*
147
0fb6bbd @rafaelfranca Merge pull request #7140 from seamusabshere/patch-1
rafaelfranca authored
148 * Make sure `:environment` task is executed before `db:schema:load` or `db:structure:load`
149 Fixes #4772.
150
151 *Seamus Abshere*
152
153
ddedf5d @spastorino Add release date to CHANGELOGs
spastorino authored
154 ## Rails 3.2.8 (Aug 9, 2012) ##
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
155
55e05d4 @rafaelfranca Do not consider the numeric attribute as changed if the old value is
rafaelfranca authored
156 * Do not consider the numeric attribute as changed if the old value is zero and the new value
157 is not a string.
158 Fixes #7237.
159
160 *Rafael Mendonça França*
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
161
81542f9 @fxn removes the deprecation of update_attribute
fxn authored
162 * Removes the deprecation of `update_attribute`. *fxn*
163
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
164 * Reverted the deprecation of `composed_of`. *Rafael Mendonça França*
165
0c52702 @jonleighton Revert "Deprecate :finder_sql, :counter_sql, :insert_sql, :delete_sql."
jonleighton authored
166 * Reverted the deprecation of `*_sql` association options. They will
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
167 be deprecated in 4.0 instead. *Jon Leighton*
168
169 * Do not eager load AR session store. ActiveRecord::SessionStore depends on the abstract store
170 in Action Pack. Eager loading this class would break client code that eager loads Active Record
171 standalone.
172 Fixes #7160
0c52702 @jonleighton Revert "Deprecate :finder_sql, :counter_sql, :insert_sql, :delete_sql."
jonleighton authored
173
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
174 *Xavier Noria*
6764b7b @spastorino Add missing CHANGELOG entries
spastorino authored
175
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
176 * Do not set RAILS_ENV to "development" when using `db:test:prepare` and related rake tasks.
177 This was causing the truncation of the development database data when using RSpec.
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
178 Fixes #7175.
a893672 @rafaelfranca Add CHANGELOG entry [ci skip]
rafaelfranca authored
179
180 *Rafael Mendonça França*
181
d1b9cf2 @tenderlove updating release date
tenderlove authored
182 ## Rails 3.2.7 (Jul 26, 2012) ##
2109fd5 @fxn registers the deprecation of update_attribute in the CHANGELOG
fxn authored
183
a79bfa9 @jonleighton Deprecate :finder_sql, :counter_sql, :insert_sql, :delete_sql.
jonleighton authored
184 * `:finder_sql` and `:counter_sql` options on collection associations
185 are deprecated. Please transition to using scopes.
186
187 *Jon Leighton*
188
189 * `:insert_sql` and `:delete_sql` options on `has_and_belongs_to_many`
190 associations are deprecated. Please transition to using `has_many
191 :through`
192
193 *Jon Leighton*
194
857697b @rafaelfranca Fix CHANGELOGS
rafaelfranca authored
195 * `composed_of` has been deprecated. You'll have to write your own accessor
196 and mutator methods if you'd like to use value objects to represent some
197 portion of your models.
198
199 *Steve Klabnik*
200
2f930df @rafaelfranca Revert "Add update_columns and the suggestion of using update_columns
rafaelfranca authored
201 * `update_attribute` has been deprecated. Use `update_column` if
2109fd5 @fxn registers the deprecation of update_attribute in the CHANGELOG
fxn authored
202 you want to bypass mass-assignment protection, validations, callbacks,
203 and touching of updated_at. Otherwise please use `update_attributes`.
204
205 *Steve Klabnik*
206
8381d39 @tenderlove updating changelogs
tenderlove authored
207 ## Rails 3.2.6 (Jun 12, 2012) ##
959fb8e @jonleighton Revert "Perf: Don't load the association for #delete_all."
jonleighton authored
208
ceb8ec3 @tenderlove updating changelogs with security fixes
tenderlove authored
209 * protect against the nesting of hashes changing the
210 table context in the next call to build_from_hash. This fix
211 covers this case as well.
212
8381d39 @tenderlove updating changelogs
tenderlove authored
213 CVE-2012-2695
214
959fb8e @jonleighton Revert "Perf: Don't load the association for #delete_all."
jonleighton authored
215 * Revert earlier 'perf fix' (see 3.2.4 changelog / GH #6289). This
216 change introduced a regression (GH #6609). assoc.clear and
217 assoc.delete_all have loaded the association before doing the delete
218 since at least Rails 2.3. Doing the delete without loading the
219 records means that the `before_remove` and `after_remove` callbacks do
220 not get invoked. Therefore, this change was less a fix a more an
221 optimisation, which should only have gone into master.
222
223 *Jon Leighton*
224
b13d89e @rafaelfranca Add release date of 3.2.5 on the CHANGELOG
rafaelfranca authored
225 ## Rails 3.2.5 (Jun 1, 2012) ##
226
227 * Restore behavior of Active Record 3.2.3 scopes.
228 A series of commits relating to preloading and scopes caused a regression.
229
230 *Andrew White*
231
232
d3e5d1c @tenderlove updating changelogs
tenderlove authored
233 ## Rails 3.2.4 (May 31, 2012) ##
2c21a2f @benedikt Revert "Revert "Fix #5667. Preloading should ignore scoping.""
benedikt authored
234
b98d1e2 @jonleighton Perf: Don't load the association for #delete_all.
jonleighton authored
235 * Perf fix: Don't load the records when doing assoc.delete_all.
236 GH #6289. *Jon Leighton*
237
2c21a2f @benedikt Revert "Revert "Fix #5667. Preloading should ignore scoping.""
benedikt authored
238 * Association preloading shouldn't be affected by the current scoping.
239 This could cause infinite recursion and potentially other problems.
240 See GH #5667. *Jon Leighton*
241
d3e5d1c @tenderlove updating changelogs
tenderlove authored
242 * Datetime attributes are forced to be changed. GH #3965
243
244 * Fix attribute casting. GH #5549
245
246 * Fix #5667. Preloading should ignore scoping.
247
44aca7b @tenderlove adding security notifications to CHANGELOGs
tenderlove authored
248 * Predicate builder should not recurse for determining where columns.
249 Thanks to Ben Murphy for reporting this! CVE-2012-2661
250
b13d89e @rafaelfranca Add release date of 3.2.5 on the CHANGELOG
rafaelfranca authored
251
3005f58 @rafaelfranca Add release data to Rails 3.2.3
rafaelfranca authored
252 ## Rails 3.2.3 (March 30, 2012) ##
3bfd651 @vijaydev changelog updates [ci skip]
vijaydev authored
253
90d9635 @pixeltrix Add dynamic find_or_create_by_{attribute}! method.
pixeltrix authored
254 * Added find_or_create_by_{attribute}! dynamic method. *Andrew White*
255
3bfd651 @vijaydev changelog updates [ci skip]
vijaydev authored
256 * Whitelist all attribute assignment by default. Change the default for newly generated applications to whitelist all attribute assignment. Also update the generated model classes so users are reminded of the importance of attr_accessible. *NZKoz*
257
258 * Update ActiveRecord::AttributeMethods#attribute_present? to return false for empty strings. *Jacobkg*
259
260 * Fix associations when using per class databases. *larskanis*
261
262 * Revert setting NOT NULL constraints in add_timestamps *fxn*
263
264 * Fix mysql to use proper text types. Fixes #3931. *kennyj*
265
266 * Fix #5069 - Protect foreign key from mass assignment through association builder. *byroot*
267
db743ff @rafaelfranca Fix my name in the CHANGELOG to follow the convention
rafaelfranca authored
268
269 ## Rails 3.2.2 (March 1, 2012) ##
270
271 * No changes.
272
273
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
274 ## Rails 3.2.1 (January 26, 2012) ##
fab664a @jonleighton Fix another race condition.
jonleighton authored
275
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
276 * The threshold for auto EXPLAIN is ignored if there's no logger. *fxn*
277
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
278 * Call `to_s` on the value passed to `table_name=`, in particular symbols
279 are supported (regression). *Sergey Nartimov*
280
fab664a @jonleighton Fix another race condition.
jonleighton authored
281 * Fix possible race condition when two threads try to define attribute
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
282 methods for the same class. *Jon Leighton*
283
fab664a @jonleighton Fix another race condition.
jonleighton authored
284
f36dcaf @dhh Preparing for 3.2.0 release
dhh authored
285 ## Rails 3.2.0 (January 20, 2012) ##
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
286
4c5b73f @tenderlove Merge pull request #4531 from exviva/pessimistic_with_lock
tenderlove authored
287 * Added a `with_lock` method to ActiveRecord objects, which starts
288 a transaction, locks the object (pessimistically) and yields to the block.
289 The method takes one (optional) parameter and passes it to `lock!`.
290
291 Before:
292
293 class Order < ActiveRecord::Base
294 def cancel!
295 transaction do
296 lock!
297 # ... cancelling logic
298 end
299 end
300 end
301
302 After:
303
304 class Order < ActiveRecord::Base
305 def cancel!
306 with_lock do
307 # ... cancelling logic
308 end
309 end
310 end
311
312 *Olek Janiszewski*
313
3f16f5b @spastorino Add CHANGELOG entry
spastorino authored
314 * 'on' and 'ON' boolean columns values are type casted to true
315 *Santiago Pastorino*
316
35a1744 @drogus Allow to run migrations with given scope, with SCOPE=<scope>
drogus authored
317 * Added ability to run migrations only for given scope, which allows
318 to run migrations only from one engine (for example to revert changes
319 from engine that you want to remove).
320
321 Example:
322 rake db:migrate SCOPE=blog
323
4c5b73f @tenderlove Merge pull request #4531 from exviva/pessimistic_with_lock
tenderlove authored
324 *Piotr Sarnacki*
35a1744 @drogus Allow to run migrations with given scope, with SCOPE=<scope>
drogus authored
325
326 * Migrations copied from engines are now scoped with engine's name,
327 for example 01_create_posts.blog.rb. *Piotr Sarnacki*
328
de24ed9 @fxn removes the convenience instance version of AR::Base.silence_auto_explai...
fxn authored
329 * Implements `AR::Base.silence_auto_explain`. This method allows the user to
330 selectively disable automatic EXPLAINs within a block. *fxn*
0be5ada @fxn implements AR::Base(.|#)silence_auto_explain
fxn authored
331
0306f82 @fxn implements automatic EXPLAIN logging for slow queries
fxn authored
332 * Implements automatic EXPLAIN logging for slow queries.
333
334 A new configuration parameter `config.active_record.auto_explain_threshold_in_seconds`
335 determines what's to be considered a slow query. Setting that to `nil` disables
336 this feature. Defaults are 0.5 in development mode, and `nil` in test and production
337 modes.
338
339 As of this writing there's support for SQLite, MySQL (mysql2 adapter), and
340 PostgreSQL.
341
342 *fxn*
a382d60 @bogdan ActiveRecord::Relation#pluck method
bogdan authored
343
344 * Implemented ActiveRecord::Relation#pluck method
345
346 Method returns Array of column value from table under ActiveRecord model
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
347
a382d60 @bogdan ActiveRecord::Relation#pluck method
bogdan authored
348 Client.pluck(:id)
349
350 *Bogdan Gusiev*
351
0e2477b @tenderlove Automatic closure of connections in threads is deprecated. For example
tenderlove authored
352 * Automatic closure of connections in threads is deprecated. For example
353 the following code is deprecated:
354
355 Thread.new { Post.find(1) }.join
356
357 It should be changed to close the database connection at the end of
358 the thread:
359
360 Thread.new {
361 Post.find(1)
362 Post.connection.close
363 }.join
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
364
0e2477b @tenderlove Automatic closure of connections in threads is deprecated. For example
tenderlove authored
365 Only people who spawn threads in their application code need to worry
366 about this change.
367
34609d6 @jonleighton Deprecate set_inheritance_column in favour of self.inheritance_column=
jonleighton authored
368 * Deprecated:
369
370 * `set_table_name`
371 * `set_inheritance_column`
7af719e @jonleighton Deprecate set_sequence_name in favour of self.sequence_name=
jonleighton authored
372 * `set_sequence_name`
1a474cc @jonleighton Deprecate set_primary_key in favour of self.primary_key=
jonleighton authored
373 * `set_primary_key`
f3c84dc @jonleighton Deprecate set_locking_column in favour of self.locking_column=
jonleighton authored
374 * `set_locking_column`
34609d6 @jonleighton Deprecate set_inheritance_column in favour of self.inheritance_column=
jonleighton authored
375
376 Use an assignment method instead. For example, instead of `set_table_name`, use `self.table_name=`:
0b72a04 @jonleighton Deprecate set_table_name in favour of self.table_name= or defining your ...
jonleighton authored
377
378 class Project < ActiveRecord::Base
379 self.table_name = "project"
380 end
381
34609d6 @jonleighton Deprecate set_inheritance_column in favour of self.inheritance_column=
jonleighton authored
382 Or define your own `self.table_name` method:
383
0b72a04 @jonleighton Deprecate set_table_name in favour of self.table_name= or defining your ...
jonleighton authored
384 class Post < ActiveRecord::Base
385 def self.table_name
386 "special_" + super
387 end
388 end
389 Post.table_name # => "special_posts"
390
391 *Jon Leighton*
392
10834e9 @joshsusser changelog & docs for GeneratedFeatureMethods
joshsusser authored
393 * Generated association methods are created within a separate module to allow overriding and
394 composition using `super`. For a class named `MyModel`, the module is named
395 `MyModel::GeneratedFeatureMethods`. It is included into the model class immediately after
396 the `generated_attributes_methods` module defined in ActiveModel, so association methods
397 override attribute methods of the same name. *Josh Susser*
398
e7b7b44 @fxn implements AR::Relation#explain
fxn authored
399 * Implemented ActiveRecord::Relation#explain. *fxn*
400
562583c @jonleighton Add ActiveRecord::Relation#uniq for toggling DISTINCT in the SQL query
jonleighton authored
401 * Add ActiveRecord::Relation#uniq for generating unique queries.
402
403 Before:
404
405 Client.select('DISTINCT name')
406
407 After:
408
409 Client.select(:name).uniq
410
411 This also allows you to revert the unqueness in a relation:
412
413 Client.select(:name).uniq.uniq(false)
414
415 *Jon Leighton*
416
69dcd45 @vjebelev AR changes to support creating ordered (asc, desc) indexes
vjebelev authored
417 * Support index sort order in sqlite, mysql and postgres adapters. *Vlad Jebelev*
418
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
419 * Allow the :class_name option for associations to take a symbol (:Client) in addition to
420 a string ('Client').
421
422 This is to avoid confusing newbies, and to be consistent with the fact that other options
423 like :foreign_key already allow a symbol or a string.
424
425 *Jon Leighton*
426
427 * In development mode the db:drop task also drops the test database. For symmetry with
428 the db:create task. *Dmitriy Kiriyenko*
429
430 * Added ActiveRecord::Base.store for declaring simple single-column key/value stores *DHH*
431
432 class User < ActiveRecord::Base
433 store :settings, accessors: [ :color, :homepage ]
434 end
435
436 u = User.new(color: 'black', homepage: '37signals.com')
437 u.color # Accessor stored attribute
438 u.settings[:country] = 'Denmark' # Any attribute, even if not specified with an accessor
439
440
441 * MySQL: case-insensitive uniqueness validation avoids calling LOWER when
442 the column already uses a case-insensitive collation. Fixes #561.
443
444 *Joseph Palermo*
445
446 * Transactional fixtures enlist all active database connections. You can test
447 models on different connections without disabling transactional fixtures.
448
449 *Jeremy Kemper*
450
451 * Add first_or_create, first_or_create!, first_or_initialize methods to Active Record. This is a
452 better approach over the old find_or_create_by dynamic methods because it's clearer which
453 arguments are used to find the record and which are used to create it:
454
455 User.where(:first_name => "Scarlett").first_or_create!(:last_name => "Johansson")
456
457 *Andrés Mejía*
458
459 * Fix nested attributes bug where _destroy parameter is taken into account
460 during :reject_if => :all_blank (fixes #2937)
461
462 *Aaron Christy*
2809375 @fxn registers 2483460 in the CHANGELOG
fxn authored
463
04d5eae @bdurand Add ActiveSupport::Cache::NullStore to expose caching interface without ...
bdurand authored
464 * Add ActiveSupport::Cache::NullStore for use in development and testing.
465
466 *Brian Durand*
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
467
8efced6 @fxn CHANGELOGs are now per branch
fxn authored
468 Please check [3-1-stable](https://github.com/rails/rails/blob/3-1-stable/activerecord/CHANGELOG.md) for previous changes.
Something went wrong with that request. Please try again.