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吗?
我刚刚遇到了同样的问题,只是将所有的vendor/plugin/*/tasks/*.rake文件移动到了lib/tasks(必须创建这个目录因为它不存在)
然后rake rails:update运行正常