Reputation: 561
I have a method that is called every time the user signs in to my app using facebook or gplus, where I update all the user fields on each sign in.
user = where(:email => email).first_or_create do |user|
user.uid = uid
user.email = email
user.provider = provider
user.save!
end
user.first_name = auth["first_name"]
user.last_name = auth["last_name"]
user.nickname = auth["first_name"]
user.name = auth["name"]
user.gender = auth["gender"]
user.role = "user"
user.latitude = 0
user.longitude = 0
user.update_attributes(user.attributes)
user
but i get the following error everytime this method is called, in a similar note, I get this error even when I try updating a single attribute
user.upate_attributes(:token => token)
wrong number of arguments (given 0, expected 1)
can't seem to figure out why
Upvotes: 0
Views: 919
Reputation: 23711
Why don't you just save the user instance
# ...
user.longitude = 0
user.save
or try this way
user.update_attributes(
first_name: auth["first_name"],
last_name: auth["last_name"],
nickname: auth["first_name"],
name: auth["name"],
gender: auth["gender"],
role: "user",
latitude: 0,
longitude: 0
)
Also, In your second command, there is a typo
user.upate_attributes(:token => token)
# Change to
user.update_attributes(:token => token)
Upvotes: 2