6
如何正確初始化需要實例化插件本身定義的模型(讀取數據庫記錄)的Redmine插件?如何在插件init.rb中正確實例化模型?
例如,我有一個插件my_redmine_plugin
,它帶有一個型號MyPluginModel
。在插件初始化之後,我想
- 從DB 讀的
- 運行與記錄
MyPluginModel
記錄
考慮下面的代碼一些初始化代碼:
require 'redmine'
Redmine::Plugin.register :my_redmine_plugin do
name 'My Redmine Plugin'
# ...
end
Rails.configuration.to_prepare do
m = MyPluginModel.find(1)
run_some_init_code(m)
end
它看起來像遷移之前運行to_prepare
:
$ bundle exec rake redmine:plugins:migrate NAME=my_redmine_plugin
`table_structure': Could not find table 'mypluginmodel' (ActiveRecord::StatementInvalid)
...
當我在遷移過程中註釋掉to_prepare
塊時,一切正常。有什麼方法可以檢測遷移過程嗎?
當簡單地捕捉異常時,我仍然必須找到一種方法來檢測它是在遷移(忽略它)還是生產(出錯並出錯)時引起的。這讓我們回到我的最初的問題:如何檢測遷移? –
@MichaelKrupp請參閱https://stackoverflow.com/questions/1858230/how-to-detect-whether-my-rails-is-running-in-migration-or-not-in-environment-rb – bbozo
@bbozo謝謝!現在我至少有一個解決方法。儘管我可以想象,遇到各種有趣的邊緣案例,就像其他人已經在您鏈接的網站上發表評論一樣。 –