我使用devise作为身份验证系统,我想创建单独的页面来更改密码和电子邮件地址。
我应该创建其他操作,例如update_password
和update_email
,还是最好使用可接受密码和电子邮件的单update
操作?
答案 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
表单更新其密码。
我不认为这是一个问题,因为用户无论如何都能够更改密码。
所以我会坚持使用经典的更新方法。
如果我错过了你的观点,请告诉我;)