繁体   English   中英

如何使用has_one关联更新对应的记录?

[英]How to update corresponding record with has_one association?

我有一个has_one自行车的用户模型,而用户接受自行车的accepts_nested_attributes_

class User < ApplicationRecord
  has_one :bike

  accepts_nested_attributes_for :bike
end

class Bike < ApplicationRecord
  belongs_to :profile
end

在我的控制器上,我像这样传递自行车的参数:

params.require(:purchase).permit(bike_attributes: [:id, :type, :brand])

之后,我用新信息更新current_user

def update
  current_user.update(purchase_params)
end

我的问题是,当前用户的每一次新更改都会创建新的自行车记录。 例如,如果我为当前用户更新有关自行车的信息10次,那么将创建10条自行车记录,只有最后一个Bike.last将保存正确的user_id

如何防止这种情况并真正只更新一个对应的记录?

谢谢。

检查Bike是否正在通过paramsid属性发送。 如果自行车当前不在那里,则应该为它添加一个隐藏的id字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM