如何解决rails插件上的rake任务弃用问题?

时间:2010-05-18 14:29:07

标签: ruby-on-rails rake

由于here中引入的概念,

  

Rails ::插件只不过是一个   Rails :: Engine,但是因为它已经加载了   它在启动过程中太晚了   没有相同的配置能力   作为一个裸Rails ::引擎。

     

与Rails相反:: Railtie和   Rails :: Engine,你不应该   继承自Rails :: Plugin。   Rails :: Plugin是自动的   简单地配置为引擎   放置在供应商/插件内。以来   这是你自动完成的   实际上不能宣布一个   你插件里面的Rails :: Engine,   否则会导致相同的情况   要加载两次的文件。这意味着   如果你想发一个引擎作为   gem它不能用作插件和   反之亦然。

     

除了这个概念上的区别,   唯一的区别   Rails :: Engine和Rails ::插件是   插件自动加载   在插件根目录下输入“init.rb”   在启动过程中。

不推荐使用rails插件中的rake任务,建议使用lib / tasks。怎么解决这个?我可以简单地将插件的任务移动到lib / tasks吗?

2 个答案:

答案 0 :(得分:9)

我刚刚遇到了同样的问题,只是将所有的vendor / plugin / * / tasks / *。rake文件移到lib / tasks(因为它不存在而不得不创建这个目录)

然后rake rails:update运行正常

答案 1 :(得分:2)

如果您是插件的开发人员,则只需移动

即可
my_cool_plugin/tasks

my_cool_plugin/lib/tasks