ROR学习笔记(1):Rails 2快速创建GRUD应用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 机器上没安装ROR开发环境的朋友,请先参看 ruby on rails + mysql 开发环境搭建 架好环境 注:ROR的经典著作“Web开发敏捷之道--应用Rails进行敏捷Web开发”目前中文的只有第二版,作者写书的环境是rails 1.x,现在rails的版本已经更新至2.3.5,很多东西已经变了,如果参考第二版的书上一步步来做的话,根本做不下去。

机器上没安装ROR开发环境的朋友,请先参看 ruby on rails + mysql 开发环境搭建 架好环境

注:ROR的经典著作“Web开发敏捷之道--应用Rails进行敏捷Web开发”目前中文的只有第二版,作者写书的环境是rails 1.x,现在rails的版本已经更新至2.3.5,很多东西已经变了,如果参考第二版的书上一步步来做的话,根本做不下去。(目前该书已经出了第三版,只不过国内暂时尚无翻译版本,http://hlee.javaeye.com/blog/363605 这里可以下载该书英文电子版)

以下操作命令,均在windows 命令行模式下完成 

1.进入工作目录(本例为d:\mydoc\ror\)

d:

cd mydoc\ror

 

2.创建带mysql的rails项目:depot (项目名称可随便起,不一定要用depot)

D:\MyDoc\Ror\depot>rails -d mysql depot

 

3.编辑database.yml,修改username与password,同时在mysql中把database.yml对应的数据库建好(注意编码建议选择为utf8)

注意:mysql不要安装最新的5.1版本,建议用5.0版本,否则rake在做数据库迁移时,可能会出现问题.

 

4.测试是否能跑起来

D:\MyDoc\Ror\depot>ruby script/server

运气好的话,浏览本机 http://localhost:3000/ 应该能出现以下画面
img_3adbffbb64436ad3a60ffc7f0f560f51.jpg

 

5.添加product产品实体模型
D:\MyDoc\Ror\depot>ruby script/generate scaffold product title:string description:text image_url:string

这里将创建一个product实体类,里面有三个成员title,description,image_url

 

6.将实体同步到数据库
D:\MyDoc\Ror\depot>rake db:migrate

执行完后,mysql数据库depot_development中将自动生成一张表products

 

注:回想一下.net中的linq to sql/entity,是先在数据库中建表,然后自动映射成实体类,而在ROR中是反过来的。

ok了,基本上搞完了!

 

浏览:http://localhost:3000/products 自个儿暗爽去吧
(注:ROR是一个纯粹的MVC框架,如果您熟悉asp.net mvc,接触ROR也会相当轻松)

产品列表页:
img_128e025412a45a98fd7ee367a10bd93f.jpg

修改产品页:
img_31c230f9f3a44776182110a946fb64ec.jpg

 

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
❤Nodejs 第十四章(node中间件multer的认识安装使用)
【4月更文挑战第14天】Multer是Node.js用于处理multipart/form-data的中间件,专注于文件上传。。基本用法包括设置存储引擎,如磁盘存储(DiskStorage)或内存存储(MemoryStorage),并指定处理单个或多个文件的方法。例如,`multer.single('file')`处理单个文件上传。存储引擎DiskStorage适合永久保存,而MemoryStorage适合临时处理。可以通过`limits`选项限制文件大小,实现不同类型的文件有不同的大小限制。
475 0
构建 Rack-based 框架 (Rails/Grape/Sinatra) 的几个 Tricks
构建 Rack-based 框架 (Rails/Grape/Sinatra) 的几个 Tricks
生成和定制Rails生成器和模板 Creating and Customizing Rails Generators & Templates2
生成和定制Rails生成器和模板 Creating and Customizing Rails Generators & Templates
114 0
生成和定制Rails生成器和模板 Creating and Customizing Rails Generators & Templates
生成和定制Rails生成器和模板 Creating and Customizing Rails Generators & Templates
158 0
【Ruby on Rails全栈课程】1.4 第一个HelloWorld
1、文件功能 文件名 功能描述 app/ 有Controllers(控制台)、Models(模型)和Views(视图)文件夹,接下来的内容主要都在这个目录。 config/ 应用程式设定档、路由规则、数据库设定等等 db/ 数据库的映射文件 lib/ 放一些自定义的Module、Class Gemfile gem插件列表,可以指定插件的版本 README 项目的使用说明
205 0
【Ruby on Rails全栈课程】1.4 第一个HelloWorld
【Ruby on Rails全栈课程】2.7 块(Block)和迭代器
1、块(Block) 块是ruby 的一个独特特性,是一种可以和方法调用相关联的代码块。 是在花括号{}或者do…end之间的一组代码,一般我们在单行中block用花括号{},在多行中用do…end (1)块的格式
144 0
Tutorial 7 TLM2.0-lab1
[https://www.doulos.com/httpswwwdouloscomknowhow/systemc/tlm-20/tutorial-1-sockets-generic-payload-blocking-transport/]1、介绍:需要有SystemC的现有知识。2、模型概念SystemC的TLM重点是通过函数调用方式来实现SC进程间通信。OSCI TLM-2.0实际聚焦在片上存储
990 0
Tutorial 8 TLM2.0-lab2
1、Response Status of the Generic Payload默认的响应状态属性是:TLM_INCOMPLETE_RESPONSE;意味transaction没有抵达target。如果执行成功,target会设置属性为:TLM_OK_RESPONSE。TLM_ADDRESS_ERROR_RESPONSE:地址越界错误TLM_BYTE_ENABLE_ERROR_RESPONSE:b
353 0
Winserver+Apache+django部署
废话不多说,干货直接上。 winserver2012 + django2.0.1 + apache 部署过程 1 ,python ==> 3.4 64位 https://www.python.org/downloads/release/python-353/2 ,django ==> 2.
2093 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等