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

Did*_*ida 5 rake ruby-on-rails

由于这里介绍的概念,

Rails :: Plugin只不过是一个Rails :: Engine,但由于它在启动过程中加载太晚,因此它没有与裸Rails :: Engine相同的配置能力.

与Rails :: Railtie和Rails :: Engine相反,你不应该继承Rails :: Plugin.通过简单地放置在供应商/插件内部,Rails :: Plugin自动配置为引擎.由于这是自动完成的,因此您实际上无法在插件中声明Rails :: Engine,否则会导致相同的文件被加载两次.这意味着如果您想将Engine作为gem发布,则不能将其用作插件,反之亦然.

除了这个概念上的差异,Rails :: Engine和Rails :: Plugin之间的唯一区别是插件在引导过程中自动加载插件根目录下的文件"init.rb".

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

vrs*_*smn 9

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

然后rake rails:update运行正常

  • 要将所有这些文件从命令行一次,从项目的根目录下,运行`的mkdir的lib/tasks`然后`MV供应商/插件/*/任务/*.LIB耙/ tasks`. (4认同)