本系列前两部分已经介绍了如何配置Ruby on Rails开发环境,现在终于进入正题啦!

Part1.开发前的准备


本次的主要任务是开发第一个Rails程序。需要特别指出的是,本次我选用了一个(PaaS开发平台),也就是Rails教程中介绍的Cloud 9平台,该平台已经自动为我们作好了环境配置的工作;只要你有一个浏览器就可以使用该云端开发环境。非常的方便快捷!简直赞!平台网址如下:https://c9.io/

Cloud 9开发平台的实质是为每一个注册的开发者在服务器端分配一个Linux虚拟机,因此在Cloud 9上进行开发就好像是在虚拟机上开发一样。在Cloud 9的终端输入命令实际上和在Linux上输入命令一模一样。因此,本文也同样适用于本地开发。

Cloud 9使用方法:

(1)注册一个免费账户并登录

(2)点击“Go to your Dashboard”

(3)点击“Create New Workspace”

(4)选择工作空间类型并命名,如图:

(5)点击“Create”

(6)点击“Start Editing”,进入虚拟机。

(7)进入开发环境以后可以根据自己的开发习惯对开发环境进行设置(自己探索~)

(8)安装Rails。Cloud 9开发环境包含了所有我们需要的工具,但是没有安装Rails本身,打开终端输入如下代码安装Rails。

$ gem install rails

至此,开发环境准备完毕,在终端输入rails --version可以检查Rails版本验证是否安装成功。 

Part2.第一个应用程序 


开发环境配置完毕后,就可以开发第一个应用程序啦。

(1)创建工程,在终端输入:rails new (project name)

rails new firstDemo

等待几秒钟后,如果创建成功会显示如下代码:

Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted

此时,Rails会自动创建文件结构,并按照MVC模型初始化模版。创建好之后的文件结构如下:

注:如果你没有创建成功,请不要着急,那可能是有些依赖文件虚拟机没有默认按照,这时你需要根据失败时的提示信息,安装相应的依赖包。安装完成后重新构建即可。

(2)修改Gemfile文件,并重新构建

如图,打开Gemfile,去掉#gem 'therubyracer', platforms: :ruby该行注释(去掉#即可),以保证我们的工程支持JavaScript。如果不取消此行注释,之后的构建会报错:缺少JavaScript平台。

取消注释完成后,在终端输入以下代码,重新构建:(先切换到项目文件夹,再构建)

cd firstDemo
bundle install

(3)使用Rails提供的自动化框架Scaffold指令

在终端输入如下指令:

rails g scaffold memo content:text

此时,Rails会建立一个memo的表,该Table具有一个Text类型的字段content。同时Rails还为我们构建好了相关的表现层,控制层,数据层代码。具体语法细节,我会在之后学习,现在不必在意。

我们可以打开app/views/memos文件夹查看生成的具体代码,如图。

(4)建立数据库

在终端输入如下指令建立数据库:

rake db:migrate

SqlLite3会根据数据模型自动创建好数据库。

(5)开启服务器,运行Web程序

注意:采用Cloud 9创建的程序与本机创建的项目在此步会有所不同。

如果采用本地服务器。在终端输入:

rails server

然后打开浏览器,输入:http://127.0.0.1:3000/memos,测试是否运行成功。

如果采用Cloud 9,需要在终端输入:

rails server -b $IP -p $PORT

然后根据Cloud 9提示,打开相应页面即可。如图:

(6)查看结果

需要注意的是,直接点击上述连接进入的不是我们生成的页面,请在生成的链接后加上/memos(原因请仔细研究config文件夹下的route.rb)

运行结果如下图:

至此,我们的第一个基于Rails的Web程序就完成啦。完全没有写代码呢!Rails框架的开发效率完全体现了出来。

后记

由于是第一个Rails程序,我们并不需要深究Ruby on Rails的语法细节,我们使用了Rails提供的生成工具Scaffold快速生成了含有数据库的应用程序,这的确比其他开发框架要快很多,我学了2个月JSP才会写基于数据库的web程序。。。

采用自动生成框架忽略了许多细节,在之后的学习中,我会深入研究Rails框架的语法和设计,而不是像现在这样迅速的生成一个应用程序。

在下一篇文章,我将探讨一个特殊的问题:Rails应用的国际化,敬请期待。

[Ruby on Rails系列]4、专题:Rails应用的国际化[I18n]

转载于:https://www.cnblogs.com/Kassadin/p/4004476.html

[Ruby on Rails系列]3、初试Rails:使用Rails开发第一个Web程序相关推荐

  1. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  2. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序

    本文为原创,如需转载,请注明作者和出处,谢谢! 本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Strut ...

  3. Struts1.x系列教程:用MyEclipse开发第一个Struts程序

    本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Struts 2.x的相同点和不同点. 在这篇文章中将以一 ...

  4. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序(二)

    五.通过模型类操作数据库 在这一节我们来编写用于操作数据库的模型类.由于本例子是Web程序,因此,建议在连接数据库时使用数据库连接池.在<Tomcat安装目录>"conf&quo ...

  5. Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像

    2019独角兽企业重金招聘Python工程师标准>>> 在前一篇文章:Docker入门系列之一:在一个Docker容器里运行指定的web应用 里, 我们已经成功地将我们在本地开发的一 ...

  6. Ruby最全系列原版书籍下载 下载 download

    Ruby最全系列书籍下载 - Beyond Java Ruby最全系列书籍下载 - Ruby in a nutshell Ruby最全系列书籍下载 - The Ruby Way Solutions a ...

  7. Ruby语言学习系列--基本的ruby语法

    Ruby语言学习系列--基本的ruby语法 1.     基本的ruby语法 1.1      变量.常量和类型 1)      定义变量 变量类型 描述 示例 局部变量(或伪变量) 以小写字母或下划 ...

  8. php和python web开发-初入Web开发,php、python和ruby应该学哪个?

    php.python和ruby都适合做WEB开发,对于web开发初学者来说,最大的问题就是学习哪种编程语言更适合未来的职业发展并且更有前景.要选择一门适合自己的语言,首先你要考虑php.python和 ...

  9. ASP .NET Core Web MVC系列教程一:创建一个Web应用程序

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 从Visual Studio中选择" 创建新项目". 选 ...

最新文章

  1. CVPR 2020 SLAM挑战赛冠军方案解读,搞定超难数据集TartanAir
  2. 民营企业的ERP之路
  3. 【AI初识境】给深度学习新手做项目的10个建议
  4. 关于MySQL的慢日志分析工具
  5. 如何删除开发用户的开发Key
  6. canvas离屏技术与放大镜实现
  7. 7-5 服务器统一出错处理2
  8. python链表操作_python操作链表的示例代码
  9. 斗鱼php开发面经,斗鱼面经
  10. MacOS Monterey 12.3 (21E30) OC 0.7.9 / Cl 5145 / PE 三分区原版黑苹果镜像
  11. 微信群如何实现语音多群转播
  12. 关于django中render_to_response()的用法以及外键的使用
  13. 解决安卓打包文件过大问题
  14. 终端应用变身文件 MD5/SHA1 校验工具
  15. MySQL 的 MRR 到底是什么?
  16. 6.#闲谈|小编一手腾讯课堂送花脚本 javascript
  17. LeetCode881:救生艇 (C、C++实现)
  18. NRFL2401学习
  19. 同一函数多次定义同名静态变量问题
  20. Oracle Database的安装环境及方法

热门文章

  1. linux上C++编译过程
  2. ffmpeg获取设备支持的分辨率_Qt音视频开发6-ffmpeg解码处理
  3. java时间戳龙_Java时间戳与日期格式字符串的互转
  4. 将矩阵转为一行_初等变换不会改变矩阵的秩
  5. signature=3e4864de0d5dd0316b95f8329f488c7d,一种农机车桥轮毂油封
  6. php判断当前页面是否有权限,php判断是否有权限下载
  7. php安装文件怎么打开文件_我的php文件怎么打开_如何打开php文件的办法
  8. java 端口转发_用Java快速实现端口转发
  9. wepy 父调用子组件方法_wepy踩坑小记(一)
  10. glassfish linux,Linux下实现GlassFish自动启动