【发布时间】:2017-03-08 22:01:17
【问题描述】:
我有一个用户模型 has_one 自行车和用户 accepts_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_user
def update
current_user.update(purchase_params)
end
我的问题是,对于当前用户的每一次新更改,都会创建一个新的 bike 记录。例如,如果我为当前用户更新自行车信息 10 次,则将创建 10 条自行车记录,并且只有最后一个 Bike.last 将保留正确的 user_id .
如何防止数据库发生这种情况并真正只更新一条对应的记录?
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5