Ruby gem:如何在启动时运行初始化?

时间:2012-04-05 18:32:34

标签: ruby ruby-on-rails-3 gem

我将Rails插件转换为gem并且它在init.rb中有初始化,用于在插件启动时运行插件。但是,当我将此插件转换为gem时,此代码不再运行!我该怎么做才能在gem启动时执行代码?

初始化是特定于Rails的,它需要:: Rails.root

2 个答案:

答案 0 :(得分:0)

我的版本目前显示弃用警告,例如

  

DEPRECATION警告:你有Rails 2.3风格的插件   供应商/插件!在Rails中将删除对这些插件的支持   4.0。移出它们并将它们捆绑在Gemfile中,或者将它们作为lib / myplugin / *和config / initializers / myplugin.rb折叠到您的应用程序中。看到   发布说明了解更多信息:   http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released。   (从$ PROJECT_HOME / config / environment.rb:8调用)

我认为这有你的答案;)

编辑: 我刚刚意识到,如果它在加载宝石时运行也许也没关系。在这种情况下,加载gem时会自动需要lib/same-name-as-gem.rb(通过bundler / ruby​​gems)。

答案 1 :(得分:0)

使用Railties初始化修复并为我发出问题。在适当的时候没有运行init.rb来配置Rails.root。