我的测试文件夹的结构如下:
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
我得到此错误:
未初始化的常数Restaurant :: Helpers(NameError)
我错了什么?我的意思是Helpers
位于子文件夹helpers
中!
答案 0 :(得分:1)
您不能只在<{1}}链中声明常量,因为要查找每个常量。
A::B::C::D
会奏效。而
module Restaurant
module Helper # declare module Helper
class Employee
...
在常量 # ⇓⇓⇓⇓⇓⇓ fail on try to const_get(:Helper)
class Restaurant::Helper::Employee
查找时失败,因为它未定义。希望它有所帮助。