每次用户使用facebook或gplus登录我的应用时都会调用一个方法,我会在每次登录时更新所有用户字段。
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
但每次调用此方法时都会出现以下错误,在类似的说明中,即使我尝试更新单个属性,也会出现此错误
user.upate_attributes(:token => token)
错误的参数数量(给定0,预期为1)
似乎无法找出原因
答案 0 :(得分:2)
为什么不直接保存用户实例
import org.openide.util.NbBundle.*;
或尝试这种方式
# ...
user.longitude = 0
user.save
另外,在你的第二个命令中,有一个拼写错误
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
)