我有用户和个人资料模型。用户has_one
个人资料belongs_to
用户。配置文件也accepts_nested_attributes_for :user
,我正在为Profile创建一个表单,它也为用户提供了一些属性。
为了让我的profile.user
更新(未创建),我必须在用户表单的嵌套属性下提供id
,我通过隐藏的输入执行此操作。
问题在于我不认为这是安全的,因为可能会更改客户端的ID,而服务器会更新另一个用户实例,而不是配置文件的用户实例。
为避免这种情况,在Profile的控制器上,我手动将user_attributes
的ID添加到与current_user.id
对应的参数上,但我认为这不是最好的方式去做吧。
有没有其他方法可以确保Rails更新实际个人资料的用户,或者,如果客户端提供的用户ID不同于profile.user
,它会阻止它吗?
答案 0 :(得分:0)
如果您使用的是URI
,例如/user/123/profile
,则可以从URI
params
获取用户的ID,如果匹配则将其与current_user.id
进行比较,很好,如果没有,错误。