ruby-on-rails – RoR:NameError:未初始化的常量(服务)

ruby-on-rails – RoR:NameError:未初始化的常量(服务),第1张

概述这是我在SO的第一个问题:) 我对RoR很新,我尝试了解PINGOWebApp,你可以在这里找到 https://github.com/PingoUPB/PINGOWebApp. 他们在app / services /(例如number_question.rb,text_question.rb)中的不同类型的问题中指定了他们的“问题”模型(app / models / question.rb),所 这是我在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 surveyend

这是我的第一个问题:
1)由于没有服务生成器,他们必须手动创建app / service /中的所有ruby文件,不是吗?或者还有其他什么方式?
2)我分叉了项目并手动添加了另一个服务,名为dragdrop_question.rb,并将其集成到question_controller.rb中:

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
初始化常量QuestionsController :: DragDropQuestion.
如果我加

require_dependency "app/services/dragdrop_question.rb"

对于question_controller.rb,错误消失了,但他们没有做过类似的事情.那么他们如何将这些服务引入控制器呢?

感谢您提前提供的任何帮助,尤其是教程或书籍参考资料,它们解释了控制器模型视图服务模式.

解决方法 尝试遵循正确的命名约定,您的类名是DragDropQuestion,因此预期的文件名是drag_drop_question.rb. 总结

以上是内存溢出为你收集整理的ruby-on-rails – RoR:NameError:未初始化的常量(服务)全部内容,希望文章能够帮你解决ruby-on-rails – RoR:NameError:未初始化的常量(服务)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1284323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存