ruby-on-rails - Rails 3 在启动时加载所有模型

标签 ruby-on-rails

我有一个类方法混合到我的所有模型中。在评估模型类时调用该方法。不幸的是(对我来说),这似乎是按需的,只要在开发环境中需要模型。如何让 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/

相关文章:

ruby-on-rails - 如何动态获取枚举的字符串值?

ruby-on-rails - 如何将远程文件分配给 Carrierwave?

ruby-on-rails - Rails 4 Devise 3.1.1 ActionController::UnknownFormat 在 Devise::RegistrationsController#new

ios - Rails Search 无法在 Heroku 的移动设备上运行

ruby-on-rails - 带有 Acts_As_Taggable_On 的 Rails 3 中未初始化的标记常量

ruby-on-rails - Ruby Rails %r 和 %w

ruby-on-rails - 安装 Rails 但它说我没有 :)

ruby-on-rails - 如何安全地检索可能不存在的 Ruby 方法的值?

mysql - Rails 4 连接远程 MySQL 数据库并拉取数据库结构以便于访问

ruby-on-rails - rSpec 使用 Shoulda 匹配器测试 Rails