Topic: Proper way to create a publishing process with draft functionality

I tried searching for answers on this and couldn't find anything. I keep seeing snippets of code that reference a published_at attribute of a post model.  For example:

def index 
  @published_posts = Post.all :conditions => {['published_at <= ?',]} 
  @unpublished_posts = Post.all :conditions => {['published_at IS NULL OR published_at > ?',]} 

Is that literally just a datetime field like created_at is? And if you have a Status dropdown with