我正在将 Rails 插件转换为 gem,它在 init.rb 中有初始化,用于在插件启动时为插件运行。但是当我将此插件转换为 gem 时,此代码不再运行!我应该怎么做才能在 gem 启动时执行代码?
并且初始化是特定于 Rails 的,它需要 ::Rails.root
我正在将 Rails 插件转换为 gem,它在 init.rb 中有初始化,用于在插件启动时为插件运行。但是当我将此插件转换为 gem 时,此代码不再运行!我应该怎么做才能在 gem 启动时执行代码?
并且初始化是特定于 Rails 的,它需要 ::Rails.root
我的构建当前显示弃用警告,例如
弃用警告:您在供应商/插件中有 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
加载 gem 时自动需要(通过 bundler/rubygems)。
使用 Railties 初始化为我修复和问题。init.rb 没有在适当的时间运行来配置 Rails.root。