1

我有两个Review模型。第一个命名空间为 as Membership::Review,第二个命名空间为Review. 当我调用非命名空间模型时,Rails 会尝试查找命名空间模型。例如:

library.includes(:reviews)

给我这个错误:

Expected C:/sites/shelflives/app/models/membership/review.rb to define Review

在我的Library模型中,Review关联是正确的:

has_one :review

即使我明确指定模型,我也会得到相同的错误:

has_one :review, :class_name => "Review"

知道发生了什么吗?

4

1 回答 1

2

config.autoload_paths当您在模型的application.rbwith 子文件夹中添加额外内容时,会发生这种错误。

你不需要这样做。所有模型都将通过命名空间自动加载。您只需要使用命名空间的子文件夹来组织正确的结构。

如果您将命名空间与模型一起使用,则可以像这样使用生成器:

rails g model membership/review

这将生成正确的命名空间模型并将其保存到membership子文件夹。

于 2013-04-19T03:18:13.837 回答