当我尝试升级到Mongoid ~7时,它抛出了这个错误:
Unable to autoload constant User::AuditSession, expected ./testapp/app/models/user/audit_session.rb to define it我确实有这个文件,但它定义的是AuditSession,而不是User::AuditSession。我把所有与用户相关的模型都放到了这个目录中,它在Mongoid ~6中有效,但在Mongoid ~7中似乎不再有效。
-我的目标是避免移动我所有的模型文件或编辑我所有的类名。
发布于 2019-06-25 04:32:30
根据Rails约定,如果模型是在user/audit_session.rb中定义的,则类名应该是User::AuditSession。
解决方法是预加载类,以便在需要时加载类。根据使用类的位置,这可以简单到只需放置
require 'user/audit_session'在使用AuditSession的文件中。
或者,您可以定义一个包含其他文件的顶级audit_session.rb (即,只包含上面的文件)。
https://stackoverflow.com/questions/56725724
复制相似问题