ruby-on-rails - Rails:重复记录,一些关联,仅其他连接表
问题描述
我有一个有很多 HABTM 关联的父类。我想复制父类及其关联,只复制HABTM 关联的连接表,这样这些记录本身就不会被复制。
class Brand < ApplicationRecord
has_many :prices, autosave: true, dependent: :destroy
has_one :preference
has_and_belongs_to_many :introductions
has_and_belongs_to_many :components
has_and_belongs_to_many :covers
has_and_belongs_to_many :template_categories
end
例如,它将克隆所有原始的、:prices
其:preference
和仅对、、和的引用。:introductions
:components
:covers
:template_categories
第一次尝试是基于deep_cloneable,但我无法直接处理连接表。
def duplicate
brand = deep_clone include: [
:prices, :preference,
:brands_introductions, # can't address join table
# ... etc
]
brand.save!
end
即,我希望克隆品牌引用与原始品牌相同的介绍、组件等。
解决方案
我认为您需要手动完成。创建一些可以完成这项工作的服务。每个关系一个。
推荐阅读
- python - Tkinter popup window
- reactjs - ant design form async-validator 警告
- c# - 更好地理解 control.InvokeRequired 的工作原理
- python - 试图找到一种解决方案来区分价值观的不同表现?
- java - 如何将使用 Camera 2 Api android 捕获的图像发送到使用 Retrofit 的服务器
- javascript - 对 Spotify API 的 POST 请求说没有令牌
- azure - 新域的 Azure 应用服务重定向错误
- javascript - Redux 为数组中的嵌套数据存储不可变模式?
- hybris - 同时通过 impex throing erre 将数据插入组件
- java - MediaPlayer 问题:所有歌曲同时播放