我想为我的故事 http://mystory.cc/ 源代码在: https://github.com/gazeldx/mystory/ 开发一些新功能。比如“民间股神”模块。但这个模块并不是所有博客用户都需要的。 PHP 中的 DISCUZ 可以用安装插件的方法来实现,把模块相关的功能源代码放在一个文件夹中。 Rails 有什么好办法吗?
把那些增量功能设计成 Gem 呗 小的做成普通 Gem 就可以了,大的要设计成 Rails engine 然后要设置一张列表确定哪些用户使用哪些插件。然后就设计一些注册插件用的接口,在那些 Gem 中调用,这样的就差不多了吧。
#9 楼 @ywencn 我去看了,已经找到例子,多谢。见: https://github.com/edavis10/redmine/tree/master/extra/sample_plugin/ Rails 强大!
#11 楼 @knwang 谢谢。我正想下载呢,可惜 github 被墙了,解决见 http://ruby-china.org/topics/8249 。所以我在 gitcafe 建了一个 mystory 的库: https://gitcafe.com/gazeldx/rubyblog
http://guides.rubyonrails.org/engines.html Engines can be considered miniature applications that provide functionality to their host applications. A Rails application is actually just a “supercharged” engine, with the Rails::Application class inheriting from Rails::Engine. Therefore, engines and applications share common functionality but are at the same time two separate beasts. Engines and applications also share a common structure, as you’ll see throughout this guide.