Closed
Description
New Rails 3.2.9 app with one model that has a serialized column:
rails new ar_serialized_dirty_test
cd ar_serialized_dirty_test
rails g model Product name:string data:text
rake db:migrate
# product.rb
class Product < ActiveRecord::Base
serialize :data
end
On every save, this column is being updated, regardless if it was changed or not.
> p = Product.create(name: "A")
SQL (0.6ms) INSERT INTO "products" ("created_at", "data", "name", "updated_at") VALUES (?, ?, ?, ?) [["created_at", Mon, 26 Nov 2012 23:08:26 UTC +00:00], ["data", nil], ["name", "A"], ["updated_at", Mon, 26 Nov 2012 23:08:26 UTC +00:00]]
=> #<Product id: 1, name: "A", data: nil, created_at: "2012-11-26 23:08:26", updated_at: "2012-11-26 23:08:26">
> p.save!
(0.3ms) UPDATE "products" SET "updated_at" = '2012-11-26 23:08:34.660484', "data" = '---\n...\n' WHERE "products"."id" = 1
=> true
> p.save!
(0.3ms) UPDATE "products" SET "updated_at" = '2012-11-26 23:08:45.777419', "data" = '---\n...\n' WHERE "products"."id" = 1
=> true
> p.data_changed?
=> false
> p.save!
(0.3ms) UPDATE "products" SET "updated_at" = '2012-11-26 23:13:20.839794', "data" = '---\n...\n' WHERE "products"."id" = 1