我有一个包含几个模型类的Rails应用程序(例如Category
,Subcategory
,User
等。为了实现一个不太重要的过滤器功能,我构建了一个过滤器类层次结构:FilterCategory
,FilterSubcategory
等,它们派生自FilterBase
。他们每个人都使用适当的“姐妹”模型类(例如Category.find :all
)。
我很快意识到我不能简单地在不使用“require”的情况下调用“姐妹”模型类。但是,我现在怀疑使用“require”是我发布here和here的其他两个问题的主要原因,这可能会在config.cache_classes=false
时搞乱类缓存。
我是否有另一种方式可以在不需要它们的情况下调用其他模型?
我尝试使用BaseWithoutTable插件,但是当我调用“姐妹模型”时,我最终得到“不是有效的常量描述符:nil”,这是因为Rails查找“FilterCategory::Category
”而不是“ Category
”。
有关最好方法的想法吗?
我正在使用Rails 2.3.8,Ruby 1.8.7。
谢谢, 阿米特
答案 0 :(得分:1)
我想知道您是否需要::Category
- 从顶级命名空间获取Category而不是将其范围限定为FilterCategory?
如果你的模型在app / models目录中,你不需要明确要求它们--Rails已经处理过了。