我有一个包含三种不同类型字段的用户模型,我希望能够彼此独立更新
同一页面有 3 种不同的表单,它们作用于同一模型:
更改用户个人资料图像
更改用户名/电子邮件
更改用户密码
它们分开的原因:照片被选中时会自动上传(不需要密码),姓名/电子邮件可以在不需要密码但需要提交表格的情况下更改,密码需要当前密码才能更改。
目前在 User#update 中,我有一系列 if/else 逻辑分支:if params[:commit] == "Update Password"
我更新密码,elsif params[:commit] == "Update Info"
更新他们的姓名/电子邮件等。
我不喜欢逻辑需要多长时间,而且我不认为将控制器逻辑绑定到视图中是一种好的做法(因为逻辑基于params[:commit]
提交按钮上出现的文本)。
有一个更好的方法吗?