【发布时间】:2018-09-06 20:58:46
【问题描述】:
我们有一个用户的常规模型(user.rb):
型号:
class User < ApplicationRecord
has_many :clientes, through: :clientes_users
end
还有一个简单的客户端模型(cliente.rb):
型号:
class Cliente < ApplicationRecord
has_many :clientes_users
has_many :users, through: :clientes_users
end
我们创建了连接表(多对多)(clientes_user.rb):
class ClientesUser < ApplicationRecord
belongs_to :cliente
belongs_to :user
end
当我们创建我们使用的用户时:
@user = User.new(
:email => params[:email],
:access_level => params[:access_level],
:password => params[:password_first],
:password_confirmation => params[:password_confirmation]
)
params[:cliente_id].each do |cliente|
@user.clientes_users.build(
:cliente => Cliente.find(cliente)
)
end
@user.save
一切正常,我们的表存储数据:
但是当我们更新关系时,记录会复制条目。
避免这种行为的最佳方法是什么,如果关系不存在则插入数据,但如果存在则忽略
提前问候。
【问题讨论】:
-
您能告诉我们您的更新操作吗?您只粘贴了创建操作,如果我没记错的话,创建不是您要问的问题。
-
嗨,对不起,你是对的
@user = User.find(8) @user.clientes_users.build( :cliente => Cliente.find(6) ) @user.save
标签: ruby-on-rails activerecord orm