Sat*_*B V 3 activerecord ruby-on-rails-3
更新: Rails 3.2 中不再存在此问题
我正在尝试获取一个包含 Rails 3 应用程序中所有模型的数组。我在尝试:
ActiveRecord::Base.send(:descendants)
Run Code Online (Sandbox Code Playgroud)
对于相同的。类似的讨论发生在以下问题中:是否有一种方法可以获取 Rails 应用程序中所有模型的集合?。正如其中一个答案所指出的,我们需要触摸模型才能显示模型。这正是我面临的问题。
我的 Rails 应用程序中有十几个模型,但是
ActiveRecord::Base.send(:descendants)
Run Code Online (Sandbox Code Playgroud)
返回一个大小为 2 的数组。该数组只有 User 和 ActiveRecord::SessionStore::Session 模型。在我通过触摸触摸模型之前,我不会获得其他模型,例如调用Comment.new
如何在不触摸所有模型的情况下获得列出的所有模型?
另一条可能有用的附加信息是我正在使用设备进行身份验证。就用户模型而言,也许设计正在以所需的方式做事,而我不会对其他模型做这些事情。
预先非常感谢。
如果cache_classes打开(默认情况下它在开发中打开,而不是在生产中打开),请首先运行以下命令:
Rails.application.eager_load!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |