【发布时间】:2011-06-05 19:27:16
【问题描述】:
我有一个模块 stat 存在于目录结构中:lib/stat_creator/stat/
在 lib/stat_creator/stat.rb 我有我需要的 lib/stat_creator/stat/ 目录中的文件,以及:
module StatCreator
module Stat
end
end
当我使用该模块时,我将类称为
StatCreator::Stat::Foo.new
现在我想要一个存在于应用程序中的根 Stat 类。我在 app/models 中创建了我的 Stat 类,并在 routes.rb 中进行了设置。但是,如果我去 rails 控制台并尝试在 app/models 中使用 Stat 类,例如:
Stat.by_user_id("ID")
我收到错误:LoadError: Expected ../lib/stat_creator/stat.rb to define Stat
我认为使用命名空间的目的是避免这种冲突,所以我不明白我做错了什么。
【问题讨论】:
-
您是否有机会在您的
Stat模型中使用include StatCreator? -
我不包括 StatCreator,但我确实指定了它,就像我在上面添加的那样。我认为必须这样做,因为我不想调用 Stat::Foo.new,因为这会与 Stat 类产生冲突。
标签: ruby-on-rails ruby