【发布时间】:2015-02-25 20:39:03
【问题描述】:
我有用户和个人资料模型。用户has_one 配置文件其中belongs_to 用户。 Profile 还有accepts_nested_attributes_for :user,我正在为Profile 构建一个表单,它也为用户提供一些属性。
为了更新(未创建)我的profile.user,我必须在用户表单的嵌套属性下提供id,我通过隐藏输入来完成。
问题在于我认为这不安全,因为可能会更改客户端的 id,而服务器会更新另一个用户实例,而不是配置文件的实例。
为了避免这种情况,在 Profile 的控制器上,我手动将 user_attributes 的 ID 附加到与 current_user.id 对应的参数上,但我认为这不是最好的方法。
是否有任何其他方法可以确保 Rails 更新实际配置文件的用户,或者,如果客户端提供的用户 ID 与 profile.user 不同,它会阻止它吗?
【问题讨论】:
标签: ruby-on-rails forms security nested-attributes