允许管理员使用Devise修改电子邮件地址

时间:2013-06-12 21:20:09

标签: ruby-on-rails devise

我正在使用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

表单中所有字段都更新的问题,但不是电子邮件字段。如何更新电子邮件字段?显然,我不希望向最终用户发送确认电子邮件(在这种情况下,管理员在数据库中有临时电子邮件,并且想要编辑它们以反映真实的电子邮件)。

1 个答案:

答案 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