更新:这个问题在Rails 3.2中不再存在
我正在尝试获取一个数组,其中包含了rails 3应用程序中的所有模型。我正在努力:
ActiveRecord::Base.send(:descendants)为了同样的。类似的讨论也发生在Is there a way to get a collection of all the Models in your Rails app?这个问题上。正如其中一个答案所指出的,我们需要触摸模型才能显示出来。这正是我所面对的问题。
在我的rails应用程序中有十几种型号,但是
ActiveRecord::Base.send(:descendants) 返回大小为2的数组。该数组只有用户和ActiveRecord::SessionStore::Session模型。在触摸到模型之前,我不会得到其他模型,比如调用Comment.new,我如何在不接触所有模型的情况下得到所有的模型?
另一项可能有用的信息是,我正在使用devise进行身份验证。也许,对于用户模型来说,设计就是以一种理想的方式来做事情,而我并没有用其他模型来做这些事情。
提前谢谢。
发布于 2013-08-05 14:40:01
如果cache_classes是on的(默认情况下是在开发中,而不是在生产中),那么首先运行以下命令:
Rails.application.eager_load!https://stackoverflow.com/questions/7230041
复制相似问题