调用update_attributes

时间:2017-04-12 09:52:42

标签: ruby-on-rails ruby-on-rails-5

每次用户使用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)

似乎无法找出原因

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
)