设计,更改密码和电子邮件地址的单独页面

时间:2012-09-29 19:20:37

标签: ruby-on-rails ruby-on-rails-3 devise

我使用devise作为身份验证系统,我想创建单独的页面来更改密码和电子邮件地址。

我应该创建其他操作,例如update_passwordupdate_email,还是最好使用可接受密码和电子邮件的单update操作?

1 个答案:

答案 0 :(得分:1)

我想在创建新动作方面没有真正的优势。 根据{{​​3}}我记得的内容,如果可以的话,你应该坚持使用7个经典动作(index / show / new / edit / create / update / delete),以便保留所有RESTFul。

无论如何,行动可能会做同样的事情。

经典更新将是:

def update
  user = User.find(params[:id]).update_attributes! params[:user]
end

以及最终的update_password& update_email可能看起来像那样

def update_email
  user = User.find(params[:id]).update_attributes! email: params[:user][:email]
end

def update_password
  user = User.find(params[:id]).update_attributes! password: params[:user][:password]
end

当使用单个操作(更新一个)时,唯一可能的问题是用户可以通过更改页面上的html来通过change email表单更新其密码。 我不认为这是一个问题,因为用户无论如何都能够更改密码。

所以我会坚持使用经典的更新方法。

如果我错过了你的观点,请告诉我;)