Rails + ошибка Amoeba: неинициализированная константа
Мне нужно клонировать модель в моем приложении Rails, и я использую amoeba
драгоценный камень, чтобы сделать то же самое.
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
Я не знаю, где здесь ошибка. Пожалуйста, скажите мне, как это исправить.
1 ответ
Вам нужно добавить
```
amoeba do
enable
end
```
в обзорной модели.
Внимательно прочитайте https://github.com/amoeba-rb/amoeba документы. если у вас есть объект-клон с соответствующей ассоциацией, вам нужно добавить
amoeba do
exclude_association
include_association
nullify
end
используйте такие директивы предварительной обработки при клонировании объекта.
сначала попробуйте с помощью rails console для клонирования объекта с помощью amoeba.