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.

Другие вопросы по тегам