我的gem可以正常使用Rails 2.3(使用Bundler)但我无法在Rails 3中加载它 .

my_app应用/的Gemfile:

gem 'mygem', '>= 0.1.0', :path => '../mygem/'

我知道它被发现是因为我设法让它“工作”一次 .

我已经阅读了许多博客帖子和铁路票据之间的行,不推荐使用 rails/init.rb ,并且应该使用需要主lib文件的顶级 init.rb . 但是,除非我在我的Rails应用程序中明确地使用 require 'my_gem' ,否则它们都不会被执行 . 这就是目前的样子:

mygem / init.rb`:

require File.join(File.dirname(__FILE__), 'lib', 'my_gem')
raise StandardError, "derailed!"

mygem / lib目录/ my_gem:

require 'my_gem/template_handler'
raise StandardError, "derailed!"

module MyGem
  class Railtie < Rails::Railtie
    raise StandardError, "derailed!"
    initializer "template handler registration" do
      raise StandardError, "derailed!"
      ActionView::Template.register_template_handler :act, TemplateHandler
    end
  end
end

ActionView::Template.register_template_handler :act, TemplateHandler

我用加注语句搞乱了所有内容......事实上,没有一个被提出使我认为我注册模板处理程序的所有尝试都是徒劳的......;)

我的想法已经用完了我的宝石加载 . my_gem/lib$LOAD_PATH 中,一切似乎都没问题 .