<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -410,7 +410,7 @@ Sequel models allow you to use any column as a primary key, and even composite k
   post = Post['ruby', 'hello world']
   post.pk #=&gt; ['ruby', 'hello world']
 
-You can also define a model class that does not have a primary key, but then you lose the ability to update records.
+You can also define a model class that does not have a primary key, but then you lose the ability to easily update records.
 
 A model instance can also be fetched by specifying a condition:
 
@@ -442,9 +442,14 @@ You can read the record values as object attributes (assuming the attribute name
 You can also change record values:
 
   post.title = 'hey there'
+  # or 
+  post.set(:title=&gt;'hey there')
+
+That will just change the value for the object, it will not persist the changes to the database.  To persist the record, call the #save method:
+
   post.save
 
-Another way to change values by using the #update method:
+If you want to modify record values and save the object after doing so, use the #update method:
 
   post.update(:title =&gt; 'hey there')
 
@@ -454,7 +459,7 @@ New records can be created by calling Model.create:
 
   post = Post.create(:title =&gt; 'hello world')
 
-Another way is to construct a new instance and save it:
+Another way is to construct a new instance and save it later:
 
   post = Post.new
   post.title = 'hello world'
@@ -462,27 +467,30 @@ Another way is to construct a new instance and save it:
 
 You can also supply a block to Model.new and Model.create:
 
-  post = Post.create{|p| p.title = 'hello world'}
-
   post = Post.new do |p|
     p.title = 'hello world'
-    p.save
   end
 
+  post = Post.create{|p| p.title = 'hello world'}
+
 === Hooks
 
 You can execute custom code when creating, updating, or deleting records by defining hook methods. The before_create and after_create hook methods wrap record creation. The before_update and after_update hook methods wrap record updating. The before_save and after_save hook methods wrap record creation and updating. The before_destroy and after_destroy hook methods wrap destruction. The before_validation and after_validation hook methods wrap validation. Example:
 
   class Post &lt; Sequel::Model
     def after_create
+      super
       author.increase_post_count
     end
 
     def after_destroy
+      super
       author.decrease_post_count
     end
   end
 
+Note the use of super if you define your own hook methods.  Almost all Sequel::Model class and instance methods (not just hook methods) can be overridden safely, but you have to make sure to call super when doing so, otherwise you risk breaking things.
+
 For the example above, you should probably use a database trigger if you can.  Hooks can be used for data integrity, but they will only enforce that integrity when you are using the model.  If you plan on allowing any other access to the database, it's best to use database triggers for data integrity.
 
 === Deleting records
@@ -639,7 +647,7 @@ Sequel models also provide a short hand notation for filters:
 
 === Model Validations
 
-You can define a validate method for your model, which save
+You can define a validate method for your model, which #save
 will check before attempting to save the model in the database.
 If an attribute of the model isn't valid, you should add a error
 message for that attribute to the model object's errors. If an
@@ -648,8 +656,8 @@ raise an error or return false depending on how it is configured.
 
   class Post &lt; Sequel::Model
     def validate
-      errors[:name] &lt;&lt; &quot;can't be empty&quot; if name.empty?
-      errors[:written_on] &lt;&lt; &quot;should be in the past&quot; if written_on &gt;= Time.now
+      errors.add(:name, &quot;can't be empty&quot;) if name.empty?
+      errors.add(:written_on, &quot;should be in the past&quot;) if written_on &gt;= Time.now
     end
   end
 </diff>
      <filename>README.rdoc</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>006cb3775613f2511acf8f3510ebb949403f9a74</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Evans</name>
    <email>code@jeremyevans.net</email>
  </author>
  <url>http://github.com/jeremyevans/sequel/commit/315bd5e53a4ca6b7e909803103aa9f202f2ab1c9</url>
  <id>315bd5e53a4ca6b7e909803103aa9f202f2ab1c9</id>
  <committed-date>2009-10-08T12:37:04-07:00</committed-date>
  <authored-date>2009-10-08T12:37:04-07:00</authored-date>
  <message>Minor changes to the README</message>
  <tree>35d4d702956089d06e31720a87ed3a7c6bd876c0</tree>
  <committer>
    <name>Jeremy Evans</name>
    <email>code@jeremyevans.net</email>
  </committer>
</commit>
