我需要在Rails应用程序中克隆一个模型,并且我正在使用amoeba
gem来执行相同的操作。
class Quiz
belongs_to :scoring
belongs_to :skill
has_many :questions, :dependent => :destroy
has_many :attempts, :dependent => :destroy
has_many :quizzes_test_profiles, :dependent => :destroy
has_many :test_profiles, :through => :quizzes_test_profiles
has_many :evaluations_evaluation_sets, as: :resource
amoeba do
enable
end
end
class EvaluationsEvaluationSet
belongs_to :test_profile
belongs_to :resource, polymorphic: true
belongs_to :evaluation_set
end
我需要使用所有嵌套关联来克隆Quiz
模型。
class QuizzesController
def duplicate_survey
id = params[:id]
original_survey = Survey.find(id)
respond_to do |format|
new_survey = original_survey.amoeba_dup
new_survey.save
if new_survey
flash[:notice] = 'Survey successfully cloned.'
else
flash[:error] = 'Survey could not be cloned'
end
format.html {redirect_to :back}
end
end
end
每执行一次以上代码,就会出现以下错误:
uninitialized constant Quiz::EvaluationsEvaluationSet
我不知道这里的错误在哪里。请告诉我如何纠正它。
答案 0 :(得分:0)
您需要添加
```
amoeba do
enable
end
```
在调查模型中。
仔细阅读https://github.com/amoeba-rb/amoeba文档。 如果您具有各自关联的克隆对象,则应添加
amoeba do
exclude_association
include_association
nullify
end
在克隆对象时使用此类预处理指令。
首先尝试使用Rails控制台使用变形虫克隆对象。