【问题标题】:Rails console NameError: uninitialized constant - nested resourcesRails 控制台 NameError:未初始化的常量 - 嵌套资源
【发布时间】:2015-06-28 06:50:34
【问题描述】:

我正在尝试使用 Rails 4 和简单的形式制作应用程序。

我有三个模型 - Project、Project_Question 和 Project_Answer。我通过生成脚手架来制作所有这些,因此所有命名约定都得到了遵循。

我的资源是嵌套的:

resources :projects do
    resources :project_questions do
      resources :project_answers
    end
  end

我正在尝试使用控制台查找在我的测试中创建的项目答案,但是当我尝试搜索项目答案时:

2.1.1p76 :001 > Project_Answer.where(:answer => [hgvbhjb]).first

我收到此错误消息:

LoadError: Unable to autoload constant Project_Answer, expected /app/models/project_answer.rb to define it.

该站点上似乎收到相同错误消息的其他问题似乎是人们没有以单数形式命名他们的 model.rb 文件。我有。

我只能认为如果资源是嵌套的,搜索控制台需要一个额外的步骤。这听起来合理吗?如果是这样,是否有任何材料可以帮助弄清楚如何使用嵌套资源搜索控制台?

谁能看出哪里出了问题?

【问题讨论】:

    标签: ruby-on-rails rails-console


    【解决方案1】:

    你做错了。应该是

    ProjectAnswer.where(:answer => "hgvbhjb").first
    

    【讨论】:

    • 我尝试了 ProjectAnswer.all 并在终端中添加了一个问号:2.1.1p76 :008?> ProjectAnswer.all
    • 当我尝试:2.1.1p76 :005 > ProjectAnswer.where(:answer => h) 时,我得到:NameError: undefined local variable or method `h' for main:Object
    • @user2860931 我没听懂你。 :answer 是什么数据类型?
    • 它是 project_answer 表中的文本属性
    • @user2860931 你应该给它ProjectAnswer.where(:answer => "h")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2015-10-25
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多