我正在为现有应用程序添加一个功能(我没有提到)。我正在尝试制作一个将报告复制到新期间的方法。报告模型有很多叫做回复的孩子,其中一些有外键。
以下是我的复制方法,在报告模型中:
def copy(new_period)
copy = self.dup
copy.report_id = Report.maximum(:report_id).next
copy.period_id = new_period
copy.responses = self.responses.map { |response| response.dup }
copy.save
end
直到你用外键命中一个响应,然后你得到:
ActiveRecord::RecordNotUnique: PG::Error: ERROR: duplicate key value violates unique constraint "responses_publication_author_id_key"
无论如何我可以跳过复制所有那些有外键的孩子而不仅仅是捕捉异常吗?这些孩子不需要复制。
我希望我有意义,因为我对很多这些概念都不熟悉。谢谢你能给我的任何帮助。
答案 0 :(得分:2)