继续:Ruby on Rails 简单了解
一. 接着上一篇继续
1.限制微博的长度
在 Rails 中实现这种限制很简单,使用验证(validation)功能即可。要限制微博的长度最多为 140 个字符
(1).打开文件:app/models/micropost.rb
class Micropost < ApplicationRecord
validates :content, length: {maximum: 140}
end
注:这句话的具体意思,稍后再谈,反正猜也能猜出来
(2).然后,看效果:

2.建立关联(一个用户拥有多篇微博, 一篇微博属于一个用户)
(1).打开文件:app/models/user.rb
class User < ApplicationRecord
has_many :microposts
end
(2).打开文件:app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: {maximum: 140}
end
关联关系:

(3).穿插个知识点,记住了!!知识点!!!
在控制台打印第一个用户所对应的微博

# 解释一下
rails console:打开rails的控制台输出
exit:退出控制台
注:中间啥意思,自己猜
3.限制字段不能为空
(1).打开文件:app/models/user.rb
class User < ApplicationRecord
has_many :microposts
validates :name, presence: true
validates :email, presence: true
end
(2).打开文件:app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: {maximum: 140}, presence: true
end
注:自己试一下
4.简单了解一下Ruby的继承体系
(1).User类和Mcropost类
# User 类的继承关系:
class User < ApplicationRecord
...
end # Mcropost 类的继承关系:
class Micropost < ApplicationRecord
...
end

注:可以看出, User 和 Micropost 都(通过 < 符号)继承自 ApplicationRecord 类,而这个类继承自 ActiveRecord::Base 类,这是 Active Record 为模型提供的基类。图中列出了这种继承关系。继承 ActiveRecord::Base 类,模型对象才能与数据库通讯,才能把数据库中的列看做 Ruby 中的属性,等等。
(2).UsersController类和MicropostsController类
# UsersController 类中的继承
class UsersController < ApplicationController
...
end # MicropostsController 类中的继承
class MicropostsController < ApplicationController
...
end # ApplicationController 类中的继承
class ApplicationController < ActionController::Base
...
end

注:控制器的继承结构与模型基本相同。可以看出, UsersController 和 MicropostsController 都继承自 ApplicationController 。如代码所示, ApplicationController 继承自ActionController::Base 。 ActionController::Base 是 Rails 中 Action Pack 库为控制器提供的基类。
。。。
简单了解,已经结束了,接下来该正式学习了
继续:Ruby on Rails 简单了解的更多相关文章
- 首探:Ruby on Rails 简单了解
一. 安装 Ruby安装:https://ruby-china.org/wiki/rvm-guide 注:安装了RVM和Gem后 安装rails: gem install rails -v 5.1.4 ...
- [Ruby on Rails系列]6、一个简单的暗语生成器与解释器(上)
[0]Ruby on Rails 系列回顾 [Ruby on Rails系列]1.开发环境准备:Vmware和Linux的安装 [Ruby on Rails系列]2.开发环境准备:Ruby on Ra ...
- Linux超快速安装Ruby on Rails
Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文 http://www.flincllck.com/quick-ins ...
- ruby on rails on windows
这次想系统学会rails,最终目标是将redmine改造成顺手的工具,主要的手段就是开发redmine插件.虽然网上都推荐使用类Unix系统,可手头只有win7系统,就安装了. 难免会遇到这样那样的问 ...
- 为什么学习Ruby On Rails:
简单总结了一下自己为什么喜欢ruby on rails: 语法简单,写代码很愉快,比较接近伪代码: 喜欢其强大的正则表达式和字符串操作. ruby中面向对象更自由,更动态: ruby给人信任,相信你了 ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- Ruby on Rails框架开发学习
学习地址:http://www.ixueyun.com/lessons/detail-lessonId-685.html 一.课程概述 软件开发在经历了面向过程编程的阶段,现在正大行其道的是敏捷开发, ...
- Ruby On Rails环境搭建
注:现在http://rubyforge.org 网站已经停止运行,取而代之的是https://rubygems.org这个网站,下文中所需要的gem包都可以去这个网站搜索下载.其他完全按照下文说的去 ...
- 10个基于 Ruby on Rails 构建的顶级站点
本文系国内 ITOM 行业领军企业 OneAPM 工程师翻译整理自 Raviraj Hegde 的文章 Top Sites Built with Ruby on Rails. 就其本身而言,Ruby ...
随机推荐
- koa 基础(十七)原生 JS 中的类、静态方法、继承
1.app.js /** * 原生 JS 中的类.静态方法.继承 * es5中的类和静态方法 */ function Person(name, age) { // 构造函数里面的方法和属性 this. ...
- Android SDK更新后Eclipse无法正常工作问题
一,问题描述 更新完Android SDK后,如果你的ADT版本低于其设定的最新版本,你更新完后立马会报错 这个时候你的项目出现各种红线,反正看着让人很不爽 二,原因 每次你更新完SDK后,Andro ...
- Cortex-M3 R0~R15寄存器组 & 特殊功能寄存器组
[R0~R15寄存器组] Cortex-M3处理器拥有R0~R15的寄存器组,如: [R0~R12通用寄存器]R0~R12都是32位通用寄存器,用于数据操作.其中: R0~R7为低组寄存器,所有的指令 ...
- ASP.NET Core-Docs:在 ASP.NET Core 中启用跨域请求(CORS)
ylbtech-ASP.NET Core-Docs:在 ASP.NET Core 中启用跨域请求(CORS) 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. ...
- HAproxy负载均衡-ACL篇(转) blog.csdn.net/tantexian
ACL定制法则: 开放策略:拒绝所有,只开放已知 拒绝策略:允许所有,只拒绝某些 事实上实现安全策略,无非也就是以上两种方法 redirect 参考:http://cbonte.github.io/h ...
- Java计算器的图形界面应用程序
JAVA计算器的图形界面应用程序 题目简介: 整体分析: 实验代码: /*部分使用插件做界面*/ import java.awt.EventQueue; import javax.swing.JB ...
- (转)MongoDB 分片集群技术
1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 1.1.1 复制集的目的 ...
- kill-9 kill-15
kill -9 PID 是操作系统从内核级别强制杀死一个进程. kill -15 PID 可以理解为操作系统发送一个通知告诉应用主动关闭. kill -15 PID 效果是正常退出进程,退出前可以被阻 ...
- PGI 遇到的坑
以下记录为本人在使用PGI社区版编译器遇到的问题,包含两类问题 1,PGI编译器本身存在你的bug. 2,在其他编译器编译运行没问题,在PGI中出现问题. 版本(18.11社区版) 1,(bug)内置 ...
- linux常用命令(15)whereis命令
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息.和find相比,whereis查找的速度非常 ...