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

felixding · 2012年09月08日 · 最后由 hhuaitest 回复于 2012年09月12日 · 3257 次阅读

我慢慢地积累了一些特定样式和功能的 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 业务有关,但有重用到应该也可以吧。

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