Rails的学习我主要基于《Ruby on rails 教程》《Agile Web Development with Rails 4 》,官网的API文档和 来自Ruby-China的指南(http://guides.ruby-china.org/index.html)来学习,整体上按照《Agile Web Development with Rails 4 》的目录顺序记述。


    美好的学习从创建项目开始。。

    Rails自带了一整套命令行工具

    首先创建了work目录并进入

    然后 使用rails new demo

    创建了一个名为demo的项目

    如下图所示 

    wKioL1SdVaqDM1ZjAAHTUc9CcAo856.jpg

    当如下图显示时说明创建完成

    wKiom1SdVbnx-LPoAABIM6AKdxs999.jpg

    项目结构如下图显示

    wKiom1SdVrbxAvQQAADQgGPVXfk879.jpg

    下图是各个文件夹的用途:图源:http://guides.ruby-china.org/index.html

    wKioL1SdX1ay1lZeAAOwe-TI5V8373.jpg

    执行rake baout 能查看安装信息(只截取了部分内容)

    wKioL1SdWLuh-hz8AAHA39Fu1Pw272.jpg

    rake about 还会检测是否有安装错误

    一切ok后,执行rails s (rails server的简写)

    由于这个虚拟环境已经安装了nodejs,所以没有出现JavaScript runtime 错误,能够正常执行

    结果如下:

    wKioL1SdWa6At5iHAAFcIxST9VI077.jpg

    vagrant已经设置了private_network 并指定ip为192.168.33.10,所以直接访问          http://192.168.33.10:3000/ 结果如下:

    wKiom1SdWjDCSZNZAAMLIW3qm04256.jpg又见hello,Rails。。。我为什么要加个又呢冏

    rails g controller Say hello goodbye  (rails generate)用于生成控制器

    wKiom1SdXxTQvBzmAAGlZkhEwtU568.jpg

    打开demo/app/controllers/say_controller.rb 生成结果如下

    wKiom1SdYDbCdQAHAACK3BDqSQ0564.jpg

Rails 与请求URL

    启动服务器后 访问http://192.168.33.10:3000/say/hello

    出现下图:

    wKiom1SdYRyjjr2eAACT6PzLT5U074.jpg

    如图所示,Rails 默认会寻找与控制器同名的模板文件,打开模板文件显示如下

    wKiom1SdY9WQtuIgAABplvj2N7w908.jpg

    修改后:

    wKioL1SdZO3yAMJPAABbKy12qzo067.jpg

   刷新游览器后

    wKiom1SdZOKQ1yNBAACBDtsLJQE218.jpg

    一个请求的执行流程如下:(摘自《Ruby on rails 教程》)

    wKiom1SdZ1OAbd5zAADWZ0-eul8345.jpg

    Rails接受一个请求后,交由控制器处理,由控制器决定下一步如何处理,是立即渲染视图并返回给游览器或是先与model交互再渲染视图。写到这儿,有点好奇Django的MTV模式,有空也好好琢磨下。

添加点动态内容

    打开模板文件修改如下:

    wKioL1SdadrDGvqhAAB8Uz_N6nw583.jpg

    

    刷新页面,显示如下:

    wKiom1SdaW-i-qouAABlY3aPQKE404.jpg

    添加时间的改良版写法

    控制器:

    wKioL1SdayeRA4J9AACUo-tg7lo200.jpg

    模板:

    wKiom1Sdap7Q1Bd8AABwhOhY7eE418.jpg

    以上的代码展现了Rails 约定大于配置的原则。。


添加链接

    首先修改demo/app/views/say/goodbye.html.erb 结果如下

    wKiom1SdbJvi3ecpAAB7dQ6XQRY051.jpg

    页面显示如下:

    wKioL1SdbYLyz1wzAACPr4gcy-c547.jpg

    添加链接啦!

    修改hello和goodbye模板如下:

    hello

    wKioL1Sdb1_CGk1uAAC9fMScDzU359.jpg


    goodbye:

    wKiom1Sdbt2zcUHeAACgVMT1tdE525.jpg


    结果:

    wKiom1SdbzGCYS-YAAC44uTyb-c274.jpg

    点击后:

    wKiom1Sdb1mQGmcJAACXxBCENqU880.jpg

书上第二章到此结束! 撒花!!

补充:

   本地生成api文档的方法

   rails new projectname

   cd projectname

   rake doc:rails # 生成API文档