Rails 在不同的 Rails 项目中重用相同组件的最佳实践是?

felixding · September 08, 2012 · Last by hhuaitest replied at September 12, 2012 · 3249 hits

我慢慢地积累了一些特定样式和功能的 helpers 和 css,希望在不同的项目中重用,并做到集中统一更新和维护。

目前只能想到创建 gem,但通过 gem 只是维护 helper 和 css 又好像有点小题大做。不知道有没有更简单的办法?

如果都是 ruby 项目,复用代码用 git submodule 感觉不太有必要,我的做法还是使用 gem,不过要注意根据功能点拆分或者合并,这个考验对业务和组件的理解能力

用软连接,ln -s

#3 楼 @ywjno 用软连接就对部署方式形成依赖了,不划算

Gem 是正解。

我最终还是用 gem 解决的。目前看还可以,就是在开发调试的时候稍微麻烦了点。

#6 楼 @felixding 做成 gem 放在同级项目旁边应该还好用啊, 就是 Gemfile 里用 gem 'some', path: 'path'这种格式,挺好,不一定要打成包的。

@felixding css/js/static images 可以考虑放在 vendor 下,用 git 管理,然后在 assets 中引用。看看 (http://twitter.github.com/bower/),管理静态资源的。对于 helper,都是 ruby 代码,可以放在 lib/extensions 下。然后在 initializer 目录里初始化一下:

Dir.glob('lib/extensions/*').each { |f| require f }

如果是和业务无关的功能我会写成 Gem

#7 楼 @hhuai 业务有关,但有重用到应该也可以吧。

You need to Sign in before reply, if you don't have an account, please Sign up first.