我有一个类方法混合到我的所有模型中。在评估模型类时调用该方法。不幸的是(对我来说),这似乎是按需的,只要在开发环境中需要模型。如何让 Rails 在启动时加载所有模型?这甚至是可取的吗?
class Foo < ActiveRecord::Base
include Acl
register_acl # i need this to be called for all models at start up
end
基本上, register_acl 接受模型希望访问控制的“ Action ”的一些参数。假设 Foo 的一个 Action 是“管理”,并且系统需要在启动时意识到这个 Action 。我认为在模型中是最自然的地方有这个逻辑。
谢谢!
最佳答案
在整个应用程序范围内执行此操作的正确方法是打开 cache_classes
在您的配置中。默认情况下,它在开发中关闭,但在生产中打开。
如果你想偶尔这样做:
Rails.application.eager_load!
关于ruby-on-rails - Rails 3 在启动时加载所有模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3027312/