取消初始化常量用户(使用 DTO)

uninitialize constant user (work with dto)

提问人:Humayun Naseer 提问时间:9/9/2020 最后编辑:Humayun Naseer 更新时间:9/10/2020 访问量:98

问:

我正在学习使用 Devise 进行身份验证的 rails,并通过它为我创建一个用户模型,一切都很好,但是当我将我的文件 (user.rb) 放入用户组件时Rails generate Devise user
Component

我也有user_dto和user_service文件。

当我尝试创建迁移时出现问题,并且我在这里出现错误 **未初始化的常量 User (NameError) ** 当我将 user.rb 文件放回模型时,错误已解决,但我必须以这种方式工作,这是他们通过将此 user.rb 文件放回不在模型中的组件来生成迁移的任何解决方案。rails g migration add_authentication_token_to_users "authentication_token:string{30}:uniq"

Ruby-on-Rails Ruby-on-Rails-3.2

评论

0赞 Alex Zakruzhetskyi 9/9/2020
为什么需要将文件从模型移动到组件目录?
0赞 Chakreshwar Sharma 9/9/2020
添加然后执行config.autoload_paths += Dir[Rails.root.join("components", "users", "{*/}")]application.rbrake db:migrate
0赞 pdu 9/10/2020
如果我没记错的话,rails 范式是“约定胜于配置”,也许你应该学习并坚持约定,而不是将所有内容更改为另一个框架/风格的约定,因为这很可能会在未来导致更多问题。
0赞 Humayun Naseer 9/10/2020
是的,你可能是对的,但我工作的公司已经以这种方式工作了很长时间,并且已经运行了项目,这就是为什么我被限制以这种方式工作,最后他们告诉我不要改变你的 user.rb 模型,以防你使用 devise 这是例外情况。

答: 暂无答案