少し綺麗にかけました

部品化すると分かりやすい。
足跡が、1回のエラー修正で通った。その際、4つのメソッド、各メソ3行くらいで構成した。
結構綺麗に書けた。

----------------------------
 
  #AccountController
  def add_footprint
    return if @user == current_user
    fp = Footprint.new(:user_prints => current_user.id,:created_at =>   Time.now)
    @user.add_footprint(fp)
  end
 
  def show_profile
    @user = User.find_by_id(params[:id])
    @user.sort_footprints
  end
 
----------------------------
 
  #User
  def add_footprint(fp)
    if footprint = search_same_printer(fp)
      footprint.update_attribute(:created_at,fp.created_at)
    else
      self.footprints << fp
      delete_oldest_prints if self.footprints.size > 5
    end
  end
  
  def sort_footprints
    self.footprints.sort!{|x,y|
      (-1)*(x.created_at <=> y.created_at )
    }
  end
 
  private
  def delete_oldest_prints
    sort_footprints
    self.footprints.delete(self.footprints.last)
  end
  
  def search_same_printer(fp)
    self.footprints.each{|footprint|
      return footprint if footprint.user_prints == fp.user_prints
    }
    return false
  end