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

Ruby on rails 设计更改密码和电子邮件地址的单独页面,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我使用Desive作为身份验证系统,我想创建用于更改密码和电子邮件地址的单独页面 我应该创建额外的操作,如更新密码和更新电子邮件,还是使用可以同时接受密码和电子邮件的单个更新操作更好 我想创造新的行动没有什么真正的优势。 从我记忆中可以看出,如果可以的话,你应该坚持7个经典动作(index/show/new/edit/create/update/delete),以保持一切都是RESTFul的 无论如何,这个动作可能会做同样的事情 一个经典的更新是: def update user = Use

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


我应该创建额外的操作,如
更新密码
更新电子邮件
,还是使用可以同时接受密码和电子邮件的单个
更新
操作更好

我想创造新的行动没有什么真正的优势。 从我记忆中可以看出,如果可以的话,你应该坚持7个经典动作(index/show/new/edit/create/update/delete),以保持一切都是RESTFul的

无论如何,这个动作可能会做同样的事情

一个经典的更新是:

def update
  user = User.find(params[:id]).update_attributes! params[:user]
end
最终的更新密码和更新电子邮件可能会像这样

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
当使用单个操作(更新操作)时,唯一的最终问题是用户可以通过
change email
表单更新密码,例如更改页面上的html。 我不认为这是一个问题,因为用户无论如何都有能力更改他的密码

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


如果我没有领会你的意思,请告诉我;)

我想创造新的行动没有什么真正的优势。 从我记忆中可以看出,如果可以的话,你应该坚持7个经典动作(index/show/new/edit/create/update/delete),以保持一切都是RESTFul的

无论如何,这个动作可能会做同样的事情

一个经典的更新是:

def update
  user = User.find(params[:id]).update_attributes! params[:user]
end
最终的更新密码和更新电子邮件可能会像这样

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
当使用单个操作(更新操作)时,唯一的最终问题是用户可以通过
change email
表单更新密码,例如更改页面上的html。 我不认为这是一个问题,因为用户无论如何都有能力更改他的密码

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

如果我没有领会你的意思,请告诉我;)