用ROR进行通用代码生成的可行性或者方法的请教

用ROR进行通用代码生成的可行性或者方法的请教

问题描述:

也是别人问我的,我不是太清楚所以在这里请教一下。
如果用Rails,能否实现如下功能:开发一个基本的增删改查的框架,然后用一些可视化的页面,允许用户自定义这个系统的名称和一些相关数据,并把数据库搭建好,就能自动生成一个该系统的增删改查的基本功能。
可能有点没说清,举个简单的例子就是,用户现在想做一个图书管理系统,那么就在我们提供的可视化页面中输入数据,定义这个系统的名称为:“图书馆里系统”,定义字段的名称,然后自己建一个数据库,点击生成,就能把图书的增删改查的功能实现出来。过两天用户又要做一个学生管理系统,仍然用我们的这个系统,定义系统名称为“学生管理系统”,连接到学生的数据库中,就能生成一个学生的增删改查。这样就不用每次进行重复劳动,因为数据库最基本的就是增删改查嘛。(这样讲的够明白么?)

我用testlink的时候,它的多语言包就是一个string.txt文档,里面都是对应关系,比如“[homepage] 首页”貌似页面上的显示都是从那个文档中读取的,所以可以根据自己的需要自行修改那个文件。如果用这种方法是不是能解决上述问题?

或者有没有可能让rails生成代码,不用读取文件或数据库,直接根据需要的字段生成页面代码,有可能吗?

[我知道说的有点乱,但是帮帮忙,解答一下或者讨论一下吧,我也好交差,谢谢谢谢n__n]

楼主的想法是要在线定制数据库,也要在线定制应用系统。

对于定制应用系统,Rails默认提供了generator,采用scaffold参数生成简单的应用;或者使用activescaffold。如果有特殊的要求,可以参考详细的使用方法,或者自己做相应修改。

对于定制数据库,需要服务器端的支持,RAILS中可以使用%x{COMMAND}来执行,具体的过程可以采用RAKE+SQL来执行。

对于这样的需求,可以定制RAKE任务和RUBY脚本放在WEB应用中,提交页面上的参数后,执行相应的任务来尽完成,不过实时性不会太高。

原理参见 通过RAKE任务在WEB系统中备份和恢复数据库。
[url]http://www.iteye.com/problems/6419[/url]

呵呵,楼主的想法不错!
推荐楼主可以借鉴借鉴activescaffold这个rails插件。
发你几个链接:
http://www.infoq.com/cn/news/2007/04/rails-scaffolding-activescaffold
http://www.activescaffold.com.cn/