ruby on rails - ActiveRecord::RecordNotUnique (PG::UniqueViolplicate key value violates unique constraint "index_users_on_email"ation: ERROR: du -


i used omniauth-kakao gem login through sns.

then succeed login , got token , profile of sns.

but when other user(not me) has signed through sns, met error

activerecord::recordnotunique (pg::uniqueviolation: error:  duplicate key value violates unique constraint "index_users_on_email" 

and code in app/model/user.rb makes error

def self.find_for_oauth(auth, signed_in_resource = nil)   identity = identity.find_for_oauth(auth)   user = signed_in_resource ? signed_in_resource : identity.user    if user.nil?     email = auth.info.email     user = user.where(:email => email).first     unless self.where(email: auth.info.email).exists?       if user.nil?           user = user.new(             profile_img: auth.info.image,             password: devise.friendly_token[0,20]           )         user.save!      #error message said line problem       end     end   end    if identity.user != user     identity.user = user     identity.save!   end   user end 

also, made 2 model. user.rb , identity.rb.(identity.rb refer user.rb)

identity.rb has 'provider(sns)', 'user' column. user.rb has user's information, profile of sns column.

when error occur, row added identity.rb , row has not user_id in 'user' column.(others added, user_id not added)

in addition, row not added user.rb never

what's problem??

should not saving email user in db in below code:

if user.nil?      user = user.new(       profile_img: auth.info.image,        password: devise.friendly_token[0,20]     )   user.save!      #error message said line problem end 

it should like:

if user.nil?      user = user.new(       profile_img: auth.info.image,       email: email,       password: devise.friendly_token[0,20]     )   user.save!      #error message said line problem end 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -