如何从site_ruby目录加载Rails插件?

时间:2011-02-07 15:14:26

标签: ruby-on-rails ruby

我在

中安装了一个插件(称为XYZ)
/usr/lib/ruby/site_ruby/1.8/XYZ

请注意它不是rubygem而是“原生”ruby sitelib库。现在

我已将此行添加到config / environment.rb:

config.gem "XYZ"

这里的问题是Rails没有加载插件。是否有强制从ruby_site目录加载的技巧? Rails 2.3.10

由于

1 个答案:

答案 0 :(得分:2)

我仍然不确定你为什么需要这样做(我想有更好的方法),但如果这是你唯一的选择,那么这里就是......

与刚刚“必需”的宝石不同,Rails通过在插件的init.rb文件上运行eval来加载插件(如果您感兴趣,请参阅here获取2.3.10)。 'site_ruby'文件夹位于Rails的加载路径中,但其中的文件将被视为普通库,而不是插件。

要更改此设置,您可以轻松地在应用配置中添加到Rails的加载路径:

config.plugin_paths << "/usr/lib/ruby/site_ruby/1.8"

我没有构建RPM软件包的经验,但如果它迫使您以如此脆弱的方式构建应用程序,那么它是否真的是分发它的最佳方式?只是一个想法! :)