ruby on rails脚手架之初体验

今天通过一个玩具应用的案例认识了ruby on rails当中的脚手架。
此处省略创建项目的过程,直接开始介绍脚手架。

初步认识脚手架

使用Rails内置的脚手架生成资源
例如:我们现在需要一个用户表,假如有用户名,用户id,用户邮箱这三个字段。要实现这个模型,并为它创建web页面。需要执行下面命令:

User 
idinteger
namestring
emailstring
rails generate scaffold User name:string email:string
#rails generate scaffold 代表生成rails脚手架
#User 是对应的表名
#name:string 是对应的属性以及类型,多个属性用空格隔开即可

需要注意的是:没必要指定 id 字段,Rails 会自动创建并将其设为表的主键(primary key)。

迁移数据库
下面这个命令的作用是使用新的 User 数据模型更新数据库。

rails db:migrate

需要注意的是:在 Rails 5 之前的版本中, db:migrate 命令使用 rake 执行,而不是 rails 。因此,执行迁移的 rake db:migrate 命令要写成:

bundle exec rake db:migrate

生成对应的增删改查页面

URL动作作用
/usersindex列出所有用户
/users/1show列出id为1的用户
/users/newnew创建新用户
/users/1/editedit编辑id为1的用户

效果如下:

index页面

Paste_Image.png

new页面

Paste_Image.png

show页面

Paste_Image.png

edit页面

Paste_Image.png

目录结构如下,基于MVC的文件分布如下:

 

Paste_Image.png


index页面为例,介绍一下,Model,View,Controller这三者之间的关系:

 

  1. 浏览器向该URL/users发送请求
  2. rails路由对URL分析,将/users交给users_controller.rb,也就是控制器。
  3. index动作对它进行处理,向user.rb,模型请求获取全部用户数据。
  4. user模型从数据库取出数据并返回给控制器。
  5. 控制器将得到的数据放在@user当中,然后传入index视图。
  6. 视图用得到的数据渲染HTML页面。
  7. 控制器将得到的页面返回给浏览器。

今天在学习过程中遇到的问题:

在创建好user资源后,运行访问/user页面报错:

ArgumentError in UsersController 
#index key must be 32 bytes

搜索发现这个是rails 5.0.1之前的一个bug,于是我更新了版本。但是不清楚除了更新版本以外还有什么其他解决方案。
关于这个bug的链接:
https://github.com/rails/rails/issues/26694

总结

通过今天的应用示例对脚手架有了一个初步认识,不过脚手架生成的代码只是一个简单的框架,还有许多东西需要完善,比如

  • 没有页面布局
  • 在新建用户时没有验证是否为空和合法性
  • 没有很完善的测试
    总之,还有许多功能,内容需要我们一点点完善。



作者:lavender21
链接:https://www.jianshu.com/p/129aab03871b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值