Rails 如何处理 Rails 3.0 之前的 plugin?

googya · 2012年06月19日 · 最后由 googya 回复于 2012年06月19日 · 3391 次阅读

目前有项目是 3.0 之前的,且在 vendor/plugins 下面有些 plugin(老式风格的),现升级到了 3.2,rails 提示说不在支持老式 plugin,需将其变成 gem,或者移入 lib 下面。

根据实际情况,没有必要做成 gem 包,所以我想将它放在 lib 下面,同时做了如下的设置,

1、在 config/initializers/下面写了初始化的文件,将之前的 plugin 加载。同时尝试了 2、在 application 的 config.autoload_paths 设置了自动加载项,在控制台中可以看到已自动加载,但是识别不了相应模块。

做过类似活的同学能否说下经验?

改写成 Gem,或者就是改写那个功能,找其他类似的 Gem 代替

#1 楼 @huacnlee 主要是不想折腾,如果没必要变的话,就不变了,实在没辙了,那就只好做成 gem 了

#2 楼 @hooopo 看过这个,也看了 The Rails Initialization Process http://guides.rubyonrails.org/initialization.html。还得继续理解

#4 楼 @googya 按你说的出现识别不了相应模块 可能的原因就是加载顺序依赖出现了问题

在网上找了半天,但是没有一个我想要的解决方案(也许是行不通吧),最后只得用 engine 的方式。另外,这篇博客有一定的指导意义:http://bibwild.wordpress.com/2012/04/25/converting-a-more-complex-rails-2-3-style-plugin-to-non-deprecated-under-rails-3-2/

需要 登录 后方可回复, 如果你还没有账号请 注册新账号