2012-04-05 31 views
0

我正在將Rails插件轉換爲gem,並在init.rb中進行了初始化,該初始化用於在插件啓動時運行插件。但是當我將這個插件轉換爲寶石時,這段代碼不再運行!我應該怎麼做在寶石啓動上執行代碼?Ruby gem:如何在啓動時運行初始化?

而且初始化Rails的特異性,它需要:: Rails.root

+1

我認爲這個問題需要更多的澄清。你是什​​麼意思的寶石啓動?你的意思是如果需要一個寶石,那麼動作x應該總是被執行? – sunnyrjuneja 2012-04-05 19:35:39

回答

0

使用Railties初始化修復併爲我解決問題。沒有在適當的時間運行init.rb來配置Rails.root。

0

我的體型目前顯示廢棄警告像

棄用警告:你有 供應商/插件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)

我覺得有你的答案;)

編輯: 我才意識到,也許這也是罰款,如果在運行時的寶石被加載。在這種情況下,當加載寶石時(通過bundler/ruby​​gems),將自動需要lib/same-name-as-gem.rb

相關問題