如何在不必实例化类的情况下从rails初始化gem?

时间:2013-06-07 12:47:01

标签: ruby

我在rails控制台发出这些命令,我​​想知道为什么我需要实例化Article.new才能让rails加载我的'livemattr-models'宝石?

1.9.3p286 :011 > defined?(Article)
 => nil
1.9.3p286 :012 > require 'livemattr-models'
 => false
1.9.3p286 :013 > defined?(Article)
 => nil
1.9.3p286 :014 > Article.new
 => #<Article _id: 51b1d5c20be168263b000001>
1.9.3p286 :015 > defined?(Article)
 => "constant"

PS。我试图解决这个问题,因为我的耙子一直在轰炸,因为我的课程没有加载。

1 个答案:

答案 0 :(得分:1)

当您在开发中运行控制台时,Rails不会在启动时加载所有类,但它会在您需要时动态加载它们。

因此,当您实例化文章时,它将加载classe。

如果要删除此行为,请将其添加到您的environment / development.rb

 config.cache_classes = true

但它会阻止rails自动重新加载你的类,并且在启动时可能会慢一些!

您可能还想了解有关cache_classes的更多信息:http://tenderlovemaking.com/2012/06/18/removing-config-threadsafe.html

相关问题