在我的Rails 6应用程序中,我有菜单,它们有页面。页面的“content”属性中有ActionText。
型号/菜单.rb
class Menu < ApplicationRecord
has_and_belongs_to_many :pages
end
型号/页面.rb
class Page < ApplicationRecord
has_and_belongs_to_many :menus
has_rich_text :content
end
我如何复制页面并保留它们的菜单关联和action_text内容?AR 's.dup破坏了关联和内容。deep_clone对AT内容没有任何表示,阿米巴似乎已经死了?
我的东西也有一些active_storage附件btw:)
1条答案
按热度按时间zsohkypk1#
看ActiveRecord的dup方法可以得到很好的解释,它只提供“浅”拷贝,因为“深”拷贝的范围是特定于应用程序的。
只需在模型中覆盖
dup
,以包含您想要的关联。我经常在名称后附加“(copy)”,并清除slugs。下面是一个示例,可以帮助您入门: