ActiveRecordの属性は"="を使わないとDBを更新できない

Ruby on Rails チュートリアル:実例を使って Rails を学ぼうをやっていて気づいたので書いた。rails 4.0.2です。

"="を使わずに更新してみる("sub!"を使ってみる→失敗)

#オブジェクトを作る
> user1 = User.create(name:"aaa",email:"aaa@example.com")
   (0.2ms)  SAVEPOINT active_record_1
  SQL (0.5ms)  INSERT INTO "users" ("created_at", "email", "name", "updated_at") VALUES (?, ?, ?, ?)  [["created_at", Tue, 06 May 2014 08:25:28 UTC +00:00], ["email", "aaa@example.com"], ["name", "aaa"], ["updated_at", Tue, 06 May 2014 08:25:28 UTC +00:00]]
   (0.2ms)  RELEASE SAVEPOINT active_record_1
 => #<User id: 4, name: "aaa", email: "aaa@example.com", created_at: "2014-05-06 08:25:28", updated_at: "2014-05-06 08:25:28"> 

#email属性をsub!を使って更新
 > user1.email.sub!(/a/,"b")
 => "baa@example.com" 

#保存(ログにSQLの実行履歴が表示されない)
 > user1.save
   (0.2ms)  SAVEPOINT active_record_1
   (0.2ms)  RELEASE SAVEPOINT active_record_1
 => true 

#DBは更新されていない
 > User.find(4)
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 4]]
 => #<User id: 4, name: "aaa", email: "aaa@example.com", created_at: "2014-05-06 08:25:28", updated_at: "2014-05-06 08:25:28"> 

"="をつかって更新してみる(成功)

#DBデータをリロード
 > user1.reload
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 4]]
 => #<User id: 4, name: "aaa", email: "aaa@example.com", created_at: "2014-05-06 08:25:28", updated_at: "2014-05-06 08:25:28"> 

#email属性を"="を使って更新
 > user1.email="baa@example.com"
 => "baa@example.com" 

#保存(ログにSQLの実行履歴が表示される)
 > user1.save
   (0.2ms)  SAVEPOINT active_record_1
  SQL (0.6ms)  UPDATE "users" SET "email" = ?, "updated_at" = ? WHERE "users"."id" = 4  [["email", "baa@example.com"], ["updated_at", Tue, 06 May 2014 09:03:11 UTC +00:00]]
   (0.2ms)  RELEASE SAVEPOINT active_record_1
 => true 

#DBが更新されている
 > User.find(4)
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 4]]
 => #<User id: 4, name: "aaa", email: "baa@example.com", created_at: "2014-05-06 08:25:28", updated_at: "2014-05-06 09:03:11">