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谢谢!现在我至少有一个解决方法。尽管我可以想象,遇到各种有趣的边缘案例,就像其他人已经在您链接的网站上发表评论一样。 –