ruby-on-rails – RoR:NameError:未初始化的常量(服务)
发布时间:2020-12-17 02:47:50  所属栏目:百科  来源:网络整理 
            导读:这是我在SO的第一个问题:) 我对RoR很新,我尝试了解PINGOWebApp,你可以在这里找到 https://github.com/PingoUPB/PINGOWebApp. 他们在app / services /(例如number_question.rb,text_question.rb)中的不同类型的问题中指定了他们的“问题”模型(app / models /
                
                
                
            | 
                         
 这是我在SO的第一个问题:) 
  
我对RoR很新,我尝试了解PINGOWebApp,你可以在这里找到 https://github.com/PingoUPB/PINGOWebApp. 他们在app / services /(例如number_question.rb,text_question.rb)中的不同类型的问题中指定了他们的“问题”模型(app / models / question.rb),所有问题都继承自app / services / generic_question.rb: class GenericQuestion < Delegator
  def initialize(question)
    super
    @question = question
  end
  def __getobj__ # required
    @question
  end
  def __setobj__(obj)
      @question = obj # change delegation object
  end
  def to_model
    @question.to_model
  end
  def has_settings?
    false
  end
  def add_setting(key,value)
    @question.settings ||= {}
    @question.settings[key.to_s] = value.to_s
  end
  def self.model_name
    Question.model_name
  end
  def self.reflect_on_association arg
    Question.reflect_on_association arg
  end
  alias_method :question,:__getobj__ # reader for survey
end 
 这是我的第一个问题: class QuestionsController < ApplicationController
...
  def new
    @question_single = SingleChoiceQuestion.new.tap { |q| q.question_options.build }
    @question_multi = MultipleChoiceQuestion.new.tap { |q| q.question_options.build }
    @question_text = TextQuestion.new
    @question_number = NumberQuestion.new  #refactor this maybe?
    @question_dragdrop = DragDropQuestion.new.tap { |q| q.answer_pairs.build }
  end
...
end 
 我还调整了视图并在本地测试了它.我在/ questions / new得到了NameError require_dependency "app/services/dragdrop_question.rb" 对于question_controller.rb,错误消失了,但他们没有做过类似的事情.那么他们如何将这些服务引入控制器呢? 感谢您提前提供的任何帮助,尤其是教程或书籍参考资料,它们解释了控制器模型视图服务模式. 解决方法
 尝试遵循正确的命名约定,您的类名是DragDropQuestion,因此预期的文件名是drag_drop_question.rb.
 
        (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
