Rails无法在第一次尝试时自动加载常量

凝聚

在我的Rails 4应用中,我有一个基本模型,我们称它为Badge,它位于中/app/models/badge.rb

然后,我有大量从“徽章”继承的特定徽章,比如GoldBadgeSilverBadge(实际上还有更多)。所有这些文件都位于中/app/model/badge/<name>_badge.rb例如,/app/model/badge/gold_badge.rb

GoldBadge的类声明如下所示

class GoldBadge < Badge
  ...

但是,Rails(或我不太了解的Ruby)自动加载程序在仅第一次尝试定位这些文件时就遇到了麻烦我的意思是GoldBadge,例如,当我第一次访问需要使用的页面时,出现以下错误:

Unable to autoload constant Badge::GoldBadge, expected /path_to_my_rails_app/app/models/badge/gold_badge.rb to define it

这很奇怪,因为该类是在该文件中定义的。但是,甚至更陌生的是,如果我随后刷新页面,一切都会正常-找到该类!

在我引用这些徽章的多种不同类型的页面上,我必须为每种不同类型刷新一次页面,然后才能起作用。例如,如果我有一个使用GoldBadgeSilverBadgeBronzeBadge的页面,那么我将刷新该页面3次,对于每种徽章类型,该错误都会显示一次,然后才能最终生效。

这发生在开发模式下。根据我的阅读,这可能会在生产中消失,但是在开发模式中仍然很烦人。有什么方法可以修复它(最好不要使用缓存类)?

费利克斯·博尔兹克(Felix Borzik)

如果将其放在命名空间(如app/models/badge文件夹)下,则必须像下面这样定义类:

class Badge::GoldBadge < Badge
  #...
end

以自动加载它并能够以类似的方式访问它Badge::GoldBadge如果您只想通过调用来访问它GoldBadge,则将其移至app/models目录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails无法在第一次尝试时自动加载常量

来自分类Dev

谷歌图表并不总是在第一次尝试时加载

来自分类Dev

第一次尝试无法访问iframe

来自分类Dev

第一次尝试时无法复制粘贴

来自分类Dev

Rails App中的JS仅在第一次加载时

来自分类Dev

UICollectionView第一次加载时明显滞后

来自分类Dev

仅在第一次或刷新时加载Javascript

来自分类Dev

第一次登录时加载 childViewControllers

来自分类Dev

在第一次加载时填充 selectizeInput

来自分类Dev

第一次加载时“$ 未定义”

来自分类Dev

EaselJs,“位图”在第一次加载浏览器时无法显示

来自分类Dev

模态选项卡在第一次触发时无法正确加载

来自分类Dev

第一次加载页面

来自分类Dev

Google Map Api:第一次加载时地图变灰,灰色区域无法加载

来自分类Dev

在需要时加载库而不是在第一次加载时加载?

来自分类Dev

第一次加载页面时,如何使网格不加载数据?

来自分类Dev

仅在第一次使用Cookie加载页面时显示加载动画?

来自分类Dev

VCR在第二次尝试运行测试时无法处理请求(第一次尝试通过)

来自分类Dev

我想从腌制的dat文件中加载字典,但是问题是我第一次尝试将其加载时,腌制的字典不存在

来自分类Dev

采购 .bashrc 时出错,但第一次加载时出错

来自分类Dev

第一次尝试无法成功启动到Windows 7

来自分类Dev

第一次尝试无法从WCF服务从Ajax函数调用获取数据

来自分类Dev

link_to ...远程:true,方法:发布总是在第一次尝试时失败

来自分类Dev

javascript输入验证在第一次尝试时不起作用

来自分类Dev

CircularReveal动画在第一次尝试时不起作用

来自分类Dev

第一次尝试时,Gradle中的复制任务会显示“最新”

来自分类Dev

WLST连接到管理端口总是在第一次尝试时失败

来自分类Dev

UIView动画在第一次尝试时没有动画

来自分类Dev

第一次尝试时不会触发模糊事件

Related 相关文章

  1. 1

    Rails无法在第一次尝试时自动加载常量

  2. 2

    谷歌图表并不总是在第一次尝试时加载

  3. 3

    第一次尝试无法访问iframe

  4. 4

    第一次尝试时无法复制粘贴

  5. 5

    Rails App中的JS仅在第一次加载时

  6. 6

    UICollectionView第一次加载时明显滞后

  7. 7

    仅在第一次或刷新时加载Javascript

  8. 8

    第一次登录时加载 childViewControllers

  9. 9

    在第一次加载时填充 selectizeInput

  10. 10

    第一次加载时“$ 未定义”

  11. 11

    EaselJs,“位图”在第一次加载浏览器时无法显示

  12. 12

    模态选项卡在第一次触发时无法正确加载

  13. 13

    第一次加载页面

  14. 14

    Google Map Api:第一次加载时地图变灰,灰色区域无法加载

  15. 15

    在需要时加载库而不是在第一次加载时加载?

  16. 16

    第一次加载页面时,如何使网格不加载数据?

  17. 17

    仅在第一次使用Cookie加载页面时显示加载动画?

  18. 18

    VCR在第二次尝试运行测试时无法处理请求(第一次尝试通过)

  19. 19

    我想从腌制的dat文件中加载字典,但是问题是我第一次尝试将其加载时,腌制的字典不存在

  20. 20

    采购 .bashrc 时出错,但第一次加载时出错

  21. 21

    第一次尝试无法成功启动到Windows 7

  22. 22

    第一次尝试无法从WCF服务从Ajax函数调用获取数据

  23. 23

    link_to ...远程:true,方法:发布总是在第一次尝试时失败

  24. 24

    javascript输入验证在第一次尝试时不起作用

  25. 25

    CircularReveal动画在第一次尝试时不起作用

  26. 26

    第一次尝试时,Gradle中的复制任务会显示“最新”

  27. 27

    WLST连接到管理端口总是在第一次尝试时失败

  28. 28

    UIView动画在第一次尝试时没有动画

  29. 29

    第一次尝试时不会触发模糊事件

热门标签

归档