Ruby on rails 调用update_属性时参数数目错误(给定0,应为1)

Ruby on rails 调用update_属性时参数数目错误(给定0,应为1),ruby-on-rails,ruby-on-rails-5,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 = au

我有一个方法,每次用户使用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)


似乎无法理解为什么不保存用户实例

# ...
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
)
另外,在您的第二个命令中,有一个输入错误

user.upate_attributes(:token => token)
# Change to 
user.update_attributes(:token => token)

为什么不保存用户实例呢

# ...
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
)
另外,在您的第二个命令中,有一个输入错误

user.upate_attributes(:token => token)
# Change to 
user.update_attributes(:token => token)

user.save会给我同样的错误,另一种方式也是如此!:/此错误
参数数量错误(给定为0,预期为1)
或其他错误如果您也可以发布回溯解决此问题,这是一个愚蠢的错误!所以,基本上我使用的是facebook登录,并且有一个安全的密码,在提供加密密码之前不会让我继续。删除了它,它现在可以正常工作了!哦这是greatuser.save给了我同样的错误,另一种方法也是如此/此错误
参数数量错误(给定为0,预期为1)
或其他错误如果您也可以发布回溯解决此问题,这是一个愚蠢的错误!所以,基本上我使用的是facebook登录,并且有一个安全的密码,在提供加密密码之前不会让我继续。删除了它,它现在可以正常工作了!哦太好了