ruby-on-rails – 测试:模块的未定义方法`new’

您好我有一个命名空间冲突的问题.我有一个模型:测试和控制器TestsController.服务器显示错误

undefined method `new' for Test:Module

我读了这个问题rails models

在模块UserTest中添加到模型Test中

module UserTest
  class Test < ActiveRecord::Base
  ....
  end
end

添加到控制器

class TestsController < ApplicationController

  def new
    @test = UserTest::Test.new
    @test.questions.build
    @title = "New test"
  end
 ...
end

服务器显示错误:未初始化的常量TestsController :: UserTest

阅读更多后,我意识到可能需要添加require或包含一个控制器.只有我不明白该怎么做.请告诉我.

解决方法

Rails中的约定是转换文件中的类名和目录中的模块名.因此,如果将UserTest :: Test类放在app / model目录中的test.rb文件中,则自动加载无法获取您的类.因为在app / model / user_test / test.rb文件搜索.

因此,您可以通过在文件顶部添加require来“强制”控制器中的require.如果你把你的课程放在test.rb中,则需要:require’test.rb’

要知道如何定义您的需求是认为应用程序的LOAD_PATH添加app / model目录.因此,所有内部都可以通过要求目录名和文件名直接添加.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...