Facebookのアプリを消して再登録したときのアクセストークンの取り扱いについて

http://stackoverflow.com/questions/7628952/omniauth-facebook-expired-token-error


tapメソッドというのを初めて知った。

class SessionsController < ApplicationController  
def create  
  auth = request.env["omniauth.auth"]  
  user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]).tap do |u|
           u.update_attributes(:token => auth["credentials"]["token"]) if u
         end || User.create_with_omniauth(auth)
  session[:user_id] = user.id  
  redirect_to root_url, :notice => "Signed in!"  
end