我只是通過這個去了,發現你就必須要經過的每個插件來檢查的幾件事情:
- 它是一個寶石在rubygems上?如果是這樣,只是堅持它在你的Gemfile和
vendor/plugins
- 刪除如果沒有寶石可用,或寶石是舊的,需要在文件夾中
vendor/plugins
並將其移動到lib/plugins
有一件事我對面跑那麼您需要手動要求所有這些插件。下面是我創建並放置在config/initializers/plugins.rb
初始化:
Dir[Rails.root.join('lib', 'plugins', '*')].each do |plugin|
next if File.basename(plugin) == 'initializers'
lib = File.join(plugin, 'lib')
$LOAD_PATH.unshift lib
begin
require File.join(plugin, 'init.rb')
rescue LoadError
begin
require File.join(lib, File.basename(plugin) + '.rb')
rescue LoadError
require File.join(lib, File.basename(plugin).underscore + '.rb')
end
end
initializer = File.join(File.dirname(plugin), 'initializers', File.basename(plugin) + '.rb')
require initializer if File.exists?(initializer)
end
我也有我需要的一些插件的初始化的問題,讓我感動那些特定的初始化爲lib/plugins/initializers
文件夾。你必須給它們命名插件的名稱,所以對於my_plugin
插件的初始化就必須在文件中lib/plugins/initializers/my_plugin.rb
希望這有助於!
非常感謝您的博客文章!我只是使用你的出色說明成功地轉換了[gmail_smtp](https://github.com/adamwiggins/gmail_smtp/)。爲了幫助任何人,我將原始'init.rb'中的兩行從'require'smtp_tls''和'require'actionmailer_gmail''改爲'require File.dirname(__ FILE__)+'/../ ../lib/gmail_smtp/smtp_tls''和'分別需要File.dirname(__ FILE__)+'/../../ lib/gmail_smtp/actionmailer_gmail'。 – user664833 2012-08-04 02:57:17
鏈接已經死了,你可以發佈一個新的@coneybeare。 – 2017-06-15 07:35:53
鏈接不起作用:( – 2017-07-17 13:16:52