我有一个用户模型 has_one 自行车和用户 accepted_nested_attributes_for 一辆自行车。
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_userdef update
current_user.update(purchase_params)
end
我的问题是,对于当前用户的每次新更改,都会创建一个新的自行车记录。例如,如果我为当前用户更新10次自行车的信息,那么将创建10个自行车记录,只有最后一个 Bike.last 将保持正确 user_id
如何防止数据库出现并真正只更新一条相应的记录?
谢谢。
答案 0 :(得分:1)
检查自行车是否在id
中的params
属性中发送。如果自行车当前不存在,您应该为自行车添加一个隐藏的id
字段。