我正在使用Devise来管理用户。我想允许管理员编辑用户信息,其中包括电子邮件地址。这是我在users_controller中的内容:
def update
@user = User.find(params[:id])
@user.confirmed_at = nil
#@user.save(:validate => false)
@user.update_without_password(params[:user])
end
表单中所有字段都更新的问题,但不是电子邮件字段。如何更新电子邮件字段?显然,我不希望向最终用户发送确认电子邮件(在这种情况下,管理员在数据库中有临时电子邮件,并且想要编辑它们以反映真实的电子邮件)。
答案 0 :(得分:3)
查看source。
update_without_password
方法会从:email
删除params
。因此,要更新email
,您应该这样做,例如:
def update
# code
@user.update_column(:email, params[:user].delete(:email))
@user.update_without_password(params[:user])
end