Rails + ошибка Amoeba: неинициализированная константа - PullRequest
0 голосов
/ 11 июня 2019

Мне нужно клонировать модель в моем приложении на 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

Я не знаю, где здесь ошибка. Подскажите пожалуйста как это исправить.

1 Ответ

0 голосов
/ 11 июня 2019

нужно добавить

```
 amoeba do
   enable
 end
```

в модели съемки.

Внимательно прочитайте https://github.com/amoeba-rb/amoeba документы. если у вас есть объект-клон с соответствующей ассоциацией, вам нужно добавить

 amoeba do
    exclude_association
    include_association
    nullify 
  end

использовать такие директивы предварительной обработки при клонировании объекта.

сначала попробуйте с консолью rails для клонирования объекта с помощью amoeba.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...