ruby-on-rails - rails : Conflict Between Namespaced and Non-Namespaced Resources

标签 ruby-on-rails namespaces associations

我有两个 Review楷模。第一个命名空间为 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"

知道发生了什么吗?

最佳答案

添加额外的 config.autoload_paths 时会出现此类错误在 application.rb带有模型的子文件夹。

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

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

rails g model membership/review

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

关于ruby-on-rails - rails : Conflict Between Namespaced and Non-Namespaced Resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16095189/

相关文章:

jquery - Select2 加载时间过长

ruby-on-rails - 在目录中依次运行 ruby​​ 脚本

c++ - 头文件中的命名空间有问题, "undefined reference to"错误?

cakephp - 是否可以根据主模型的数据进行关联?

mysql - rails : Autocreate associated records as soon as parent record is saved

javascript - Ruby on Rails - 将 JavaScript 变量从 Controller 发送到外部 Javascript Assets 文件

c++ - 使用命名空间和文件夹来组织代码是否太过分了?

typescript - 为什么命名空间重载不起作用?

mysql - 通过 has_one/belongs_to 将模型 id 保存为外键

ruby-on-rails - 我是否应该将二进制文件包含在 Rails 插件中?