Rails + Amoeba错误:未初始化的常量

时间:2019-06-11 07:05:06

标签: ruby-on-rails amoeba-gem

我需要在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 :(得分:0)

您需要添加

```
 amoeba do
   enable
 end
```

在调查模型中。

仔细阅读https://github.com/amoeba-rb/amoeba文档。 如果您具有各自关联的克隆对象,则应添加

 amoeba do
    exclude_association
    include_association
    nullify 
  end

在克隆对象时使用此类预处理指令。

首先尝试使用Rails控制台使用变形虫克隆对象。