rails是基于ruby语言,当前流行的一种动态语言的WEB架构,与其相似的有Python的Django。
学习ruby及rails有了一段时间了,准备做一个WEB项目当做一个实践,由于笔者一直从事桌面程序开发,web经验不多,通过本文记录一下整个项目的开发过程。
首先,介绍一下本人的开发环境:ruby(1.8.6) + rails(1.2.6) + NetBeans(6.0.1) + DW(rubyweaver) + winxp + MySql5
项目背景,简单的内容管理系统,功能模块:
Ajax,rails插件(分页,rich)
WebService
其他技术
一、文件分类管理
(1)数据库建模:
使用Mysql Query 连接到本机的MySql,建立开发数据库ContentManager_dev,
DDL:Create DateBase ContentManager_dev
建立文件分类数据表,catalogs
DROP TABLE IF EXISTS `files`.`catalogs`;
CREATE TABLE `files`.`catalogs` (
`id` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(45) NOT NULL,
`Description` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
建立文件数据表, efiles
DROP TABLE IF EXISTS `files`.`efiles`;
CREATE TABLE `files`.`efiles` (
`id` int(10) unsigned NOT NULL auto_increment,
`catalog_id` int(10) unsigned default NULL,
`FileName` varchar(500) default NULL,
`FileLocal` varchar(500) default NULL,
`Description` varchar(500) default NULL,
`FileExt` varchar(500) default NULL,
`OperDate` datetime default NULL,
`euser_id` int(10) unsigned default NULL,
PRIMARY KEY (`id`),
KEY `FK_efiles_1` (`catalog_id`),
KEY `FK_efiles_2` (`euser_id`),
CONSTRAINT `FK_efiles_1` FOREIGN KEY (`catalog_id`) REFERENCES `catalogs` (`id`),
CONSTRAINT `FK_efiles_2` FOREIGN KEY (`euser_id`) REFERENCES `eusers` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;
其中文件与文件分类为多对一的关系,文件与用户为多对一关系
(2)建立项目,打开NetBeansIDE,新建一Rails项目,输入项目的名称及其保存路径,点击完成。关于NetBeansIDE,Rails配置请参考www.NetBeans.com关于配置的教程
(3)生成脚手架,在生成的项目中(项目列表)点击右键,选择生成,在生成的对话框中选择scaffold,在模型名称中输入:catalog,控制器中输入:catalog,视图:catalog,点生成,系统生成catalog的脚手架,测试生成的脚手架,点击运行(F6),在流览器中输入
http://localhost:3000/catalog/,即可看到生成的列表,并可以通过new Catalog,进行列表的维护
总结,介绍了系统开发环境,开发背影,技术,及第一个脚手架程序,其中用到了Rails的快速搭建的特性,对于敏捷开发,Rails能充分发挥其自身的优势,如同Delphi在桌面开发方面的优势,这可能也是笔者喜欢rails的一个理由吧!!
学习ruby及rails有了一段时间了,准备做一个WEB项目当做一个实践,由于笔者一直从事桌面程序开发,web经验不多,通过本文记录一下整个项目的开发过程。
首先,介绍一下本人的开发环境:ruby(1.8.6) + rails(1.2.6) + NetBeans(6.0.1) + DW(rubyweaver) + winxp + MySql5
项目背景,简单的内容管理系统,功能模块:
- 后台管理:用户管理,权限管理,文件分类管理,文件管理,新闻分类管理,新闻管理,用户登录
- 前台管理:文件浏览(分类),新闻浏览(分类),文件,消息评论
Ajax,rails插件(分页,rich)
WebService
其他技术
一、文件分类管理
(1)数据库建模:
使用Mysql Query 连接到本机的MySql,建立开发数据库ContentManager_dev,
DDL:Create DateBase ContentManager_dev
建立文件分类数据表,catalogs
DROP TABLE IF EXISTS `files`.`catalogs`;
CREATE TABLE `files`.`catalogs` (
`id` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(45) NOT NULL,
`Description` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
建立文件数据表, efiles
DROP TABLE IF EXISTS `files`.`efiles`;
CREATE TABLE `files`.`efiles` (
`id` int(10) unsigned NOT NULL auto_increment,
`catalog_id` int(10) unsigned default NULL,
`FileName` varchar(500) default NULL,
`FileLocal` varchar(500) default NULL,
`Description` varchar(500) default NULL,
`FileExt` varchar(500) default NULL,
`OperDate` datetime default NULL,
`euser_id` int(10) unsigned default NULL,
PRIMARY KEY (`id`),
KEY `FK_efiles_1` (`catalog_id`),
KEY `FK_efiles_2` (`euser_id`),
CONSTRAINT `FK_efiles_1` FOREIGN KEY (`catalog_id`) REFERENCES `catalogs` (`id`),
CONSTRAINT `FK_efiles_2` FOREIGN KEY (`euser_id`) REFERENCES `eusers` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;
其中文件与文件分类为多对一的关系,文件与用户为多对一关系
(2)建立项目,打开NetBeansIDE,新建一Rails项目,输入项目的名称及其保存路径,点击完成。关于NetBeansIDE,Rails配置请参考www.NetBeans.com关于配置的教程
(3)生成脚手架,在生成的项目中(项目列表)点击右键,选择生成,在生成的对话框中选择scaffold,在模型名称中输入:catalog,控制器中输入:catalog,视图:catalog,点生成,系统生成catalog的脚手架,测试生成的脚手架,点击运行(F6),在流览器中输入
http://localhost:3000/catalog/,即可看到生成的列表,并可以通过new Catalog,进行列表的维护
总结,介绍了系统开发环境,开发背影,技术,及第一个脚手架程序,其中用到了Rails的快速搭建的特性,对于敏捷开发,Rails能充分发挥其自身的优势,如同Delphi在桌面开发方面的优势,这可能也是笔者喜欢rails的一个理由吧!!