子文件夹中未初始化的常量文件



我的测试文件夹的结构是这样的:

  test
    models
      restaurant
        helpers
           employee.rb
        points_test.rb

所以我的PointsTest看起来像这样:

require 'models/restaurant/helpers/employee.rb' 
   class Restaurant::PointsTest < ActiveSupport::TestCase
     ....
     employee1 = Restaurant::Employee.create

文件Employee如下所示:

class Restaurant::Employee
   def self.create
     .....

一切都像这样工作

---------------------------------------------

现在我试图将class Restaurant::Employee更改为class Restaurant::Helpers::Employee

PointsTest年我改成了employee1 = Restaurant::Helpers::Employee.create

我收到此错误

未初始化常量 餐厅::帮助程序(名称错误)

我做错了什么?我的意思是Helpers在子文件夹中 helpers

你不能像A::B::C::D一样只在链中声明常量,因为每个常量都要被查找。

module Restaurant
  module Helper   # declare module Helper
    class Employee
      ...

会工作。而

                # ⇓⇓⇓⇓⇓⇓ fail on try to const_get(:Helper)
class Restaurant::Helper::Employee

常量Helper查找时失败,因为它未定义。希望对您有所帮助。

最新更新