Когда я создаю новую учетную запись через Google, электронная почта сохраняется в моей записи пользователя. Когда я создаю пользователя через твиттер, столбец электронной почты пуст. Я хотел бы обновить эту запись, если пользователь связывает свою текущую учетную запись Twitter с Google.
в моей модели пользователя:
def self.create_from_hash!(hash) create! do |user| user.name = hash['user_info']['name'] user.email = hash['user_info']['email'] end end
В контроллере сессий:
def create auth = request.env['rack.auth'] unless @auth = Authorization.find_from_hash(auth) @auth = Authorization.create_from_hash(auth, current_user) end self.current_user = @auth.user flash[:notice] = "Welcome, #{current_user.name}." redirect_to '/' end
и в модели авторизации:
def self.create_from_hash(hash, user = nil) user ||= User.create_from_hash!(hash) Authorization.create(:user => user, :uid => hash['uid'], :provider => hash['provider']) end
Как я могу обновить этот столбец при добавлении метода авторизации?