![](/img/trans.png)
[英]edit and update function in controller for has_one active record association
[英]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是否正在通过params
的id
属性发送。 如果自行车当前不在那里,则应该为它添加一个隐藏的id
字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.