Ruby on Rails 学习手记(二)

虽然才第二章

但是已经感觉有压力了

害怕自己前面学的不扎实

怎么办

我的建议是

把学习的过程记录下来

是个笨方法

但是有效

以前还有狠人手抄代码呢

仅仅为了提升语感

恩,代码也是一种语言

这第二章

就这么开始了

设计一个玩具app

可以重新建一个repo

也可以沿用第一章里的

建议都做一遍加深记忆

然后直接就开始输入

rails generate scaffold User name:string email:string

不懂什么意思

这里其实已经开始根据模型(model)建立数据库了

rails db:migrate

很多初次面对这种操作的小伙伴可能会一脸懵逼

但是我也没啥好教的

来回操作了五六次之后

我自己才稍微明白这么操作背后的原理

所以

大家再接再厉吧

仅仅是这两步操作

当你rails s的时候

打开/users目录出来的结果就不一样了

还能new一个用户试试

结果就出现问题了

google一下问题

尽量在Stack Overflow里找答案

大概试了七八个解决方案后

总算找到了

就和玩游戏一样

打完这一关

赶紧存个档

git add .

git commit -m “adding user table”

git push origin master

为啥要这么做呢

当遇到下一个问题的时候你就会理解了。。。

恩,添加修改和删除用户

运行无碍

中场休息

现在回顾一下之前的操作

其实就是在第一章默认的框架里

改了index显示hello world

添加了一个叫user的数据库

不过整个过程比较简单

一句命令就完事

这也是ruby on rails厉害的地方

适合懒人

然后就是遇到了教程中没有出现的故障

即使完全按照教程来操作了

在技术的世界

这属于常态

所以需要不断的google

解决一个问题就存档commit一下

这也是个好习惯

当然

慢慢入门后

碰到的问题少了

(基本不可能,只会越来越多)

就可以每个功能存档一下

如果是多人协作的项目

还需要各自负责不同的分支branch

然后测试

然后merge

休息完毕

继续新的知识点

REST这个概念很重要

他解释了那句命令背后

模块化生成的一堆操作

大家可以看看

app/models/user.rb

app/views/users/index.html.erb

app/controllers/users_controller.rb

正好是对应的三个文件

Model、View、Controller

当然

scaffold也是有缺点的

这些会在之后的章节里解决

那么我们继续建下一个表

rails generate scaffold Micropost content:text user_id:integer

建完之后要移植一下

或者说重置一下

rails db:migrate

才能使新的数据库生效

运行一下

又碰到了前面的问题

一模一样

但是这次不用再重复改七八次了

如果你记性够好的话

直接在micropost的controller里添加

protect_from_forgery

就ok了

完美

继续

给post的内容长度加限制

微博嘛

不能超过140字

实地检验一下

是有效的

额,后面开始抽象起来了

比如一个用户可以有多篇微博

每个微博都属于一个特定用户

然后进入irb环境熟悉熟悉mysql的另一种操作

差不多就是这样了

一些输入限制(validation)也很简单

这里fill_in对应改成:name和:email

基本上都是照着做一遍就懂了

章节的最后解释了一下

为什么如此简单就建了两个表

和这么多页面加操作

其实这部分得益于面向对象编程里的继承

user和micropost都是从application继承的

人家早就打包了所有常用功能

最后

本章小结

在第一章的基础上

我们对rails有了一个更具体的了解

深入体验了MVC

尝试了REST框架

初识了数据模型

第一次成功开发了一个带数据库后台的程序

看到如此多的成就

下面的哪些缺点暂时先忽略吧

目前学得还算扎实

休息,休息一下~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181108G0CTQL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券