Reputation: 460
I'm a not a rails expert but i want to know that how can I find the User by its email as I'm getting before in params . & in else section I want to create new user by using that parameters
def google
user = User.find_by email: user[:email]
if user
user.generate_new_authetication_token
json_response "User Information & already exist" , true, {user: user}, :ok
else
??????????
end
if user.save
json_response "Signed up Successfully ", true, {user: user}, :ok
else
json_response "something wrong ", false, {}, :unprocessable_entity
end
end
And another private function from which I'm getting user params
private
def google_params
params.require(:user).permit(:uid , :email )
end
Upvotes: 0
Views: 64
Reputation: 354
You can use find_or_initialize_by
method. reference
This is for you your case
def google
user = User.find_or_initialize_by(email: user[:email])
if user.persisted?
user.generate_new_authetication_token
json_response "User Information & already exist" , true, {user: user}, :ok
else
# ??????????
end
if user.save
json_response "Signed up Successfully ", true, {user: user}, :ok
else
json_response "something wrong ", false, {}, :unprocessable_entity
end
end
I hope it should work.
Upvotes: 2