部品化すると分かりやすい。
足跡が、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