Callbacks vs Observer vs "Just adding to controller action"

I am setting up auditing for my app where views, updates, and deletes
are recorded in my Audits table to track the life cycle of an employee
record. I've read how great callbacks and observers are, but there
isn't a way to 'callback' for simply viewing a page. The simplest
solution just seems to be manually creating the audit in my show
action, like this:

  def show
    @employee = Employee.find(params[:id])
    Audit.create(
      :user => Goldberg.user.name,
      :time => Time.now,
      :action => 'Viewed',
      :employee_id => @employee.id
    )
  end

This works, I'm just wondering if there is a better approach.

I am setting up auditing for my app where views, updates, and deletes
are recorded in my Audits table to track the life cycle of an employee
record. I've read how great callbacks and observers are, but there
isn't a way to 'callback' for simply viewing a page. The simplest
solution just seems to be manually creating the audit in my show
action, like this:

  def show
    @employee = Employee.find(params[:id])
    Audit.create(
      :user => Goldberg.user.name,
      :time => Time.now,

Rename the time column to 'created_at' and RAILS will automatically
set it.

      :action => 'Viewed',
      :employee_id => @employee.id
    )
  end

This works, I'm just wondering if there is a better approach.

Use before_filter:

class EmployeeController < ApplicationController
  before_filter :audit, :only => [ :show, :update, :delete]

  def audit
    @employee = Employee.find(params[:id]) # hope you have some
authorization check somewhere
    Audit.create(:user => ...,
                       :action => params[:action],
                       :employee_id => params[:id])
  end

  ...

"Rename the time column to 'created_at' and RAILS will automatically
set it."
  - Geesh I should know that by now.

"# hope you have some authorization check somewhere"
  - if you mean user authentication, then yes.

very nice! thanks Kevin!