【问题标题】:How does Rails 3 load the model layer in production mode and resolve model dependencies?Rails 3 如何在生产模式下加载模型层并解决模型依赖关系?
【发布时间】:2012-02-13 12:00:06
【问题描述】:

换句话说,它的工作方式是否类似于开发模式,但会根据需要缓存类?还是所有模型都是预先加载的?

如果是后者,Rails 怎么知道在依赖它的模型之前加载一个依赖(另一个模型)的模型?

我想知道这样我就可以评估在不使用 Rails 脚本运行器的情况下将 Rails 模型加载到普通 Ruby 项目中的可行性。

【问题讨论】:

标签: ruby-on-rails ruby model dependencies loading


【解决方案1】:

这些课程是预先要求的。 Rails 基本上按字母顺序 (see here) 对 config.eager_load_paths 中的所有内容执行 require_dependency

require_dependency 是 Active Support 的一部分,简而言之就是 load/require,但它集成了 Active Support 的依赖跟踪。如果在此过程中 rails 遇到尚未加载的内容(例如,如果 A 是 B 的子类),则通常的 const_missing 钩子将触发并加载 b.rb

您应该能够像 rails 一样设置 Active Support,并从您的非 Rails 项目中调用相同的方法。

【讨论】:

  • 谢谢弗雷德里克。这就是我一直在寻找的。谢谢你!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 2016-10-11
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
相关资源
最近更新 更多