一. 接着上一篇继续

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 简单了解的更多相关文章

  1. 首探:Ruby on Rails 简单了解

    一. 安装 Ruby安装:https://ruby-china.org/wiki/rvm-guide 注:安装了RVM和Gem后 安装rails: gem install rails -v 5.1.4 ...

  2. [Ruby on Rails系列]6、一个简单的暗语生成器与解释器(上)

    [0]Ruby on Rails 系列回顾 [Ruby on Rails系列]1.开发环境准备:Vmware和Linux的安装 [Ruby on Rails系列]2.开发环境准备:Ruby on Ra ...

  3. Linux超快速安装Ruby on Rails

    Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文  http://www.flincllck.com/quick-ins ...

  4. ruby on rails on windows

    这次想系统学会rails,最终目标是将redmine改造成顺手的工具,主要的手段就是开发redmine插件.虽然网上都推荐使用类Unix系统,可手头只有win7系统,就安装了. 难免会遇到这样那样的问 ...

  5. 为什么学习Ruby On Rails:

    简单总结了一下自己为什么喜欢ruby on rails: 语法简单,写代码很愉快,比较接近伪代码: 喜欢其强大的正则表达式和字符串操作. ruby中面向对象更自由,更动态: ruby给人信任,相信你了 ...

  6. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...

  7. Ruby on Rails框架开发学习

    学习地址:http://www.ixueyun.com/lessons/detail-lessonId-685.html 一.课程概述 软件开发在经历了面向过程编程的阶段,现在正大行其道的是敏捷开发, ...

  8. Ruby On Rails环境搭建

    注:现在http://rubyforge.org 网站已经停止运行,取而代之的是https://rubygems.org这个网站,下文中所需要的gem包都可以去这个网站搜索下载.其他完全按照下文说的去 ...

  9. 10个基于 Ruby on Rails 构建的顶级站点

    本文系国内 ITOM 行业领军企业 OneAPM 工程师翻译整理自 Raviraj Hegde 的文章 Top Sites Built with Ruby on Rails. 就其本身而言,Ruby ...

随机推荐

  1. SSH端口转发详解

    正文 一.SSH端口转发简介 SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据.但是,SSH还能够将其他TCP端口的网络数据通SSH链接来转发,并且自动提供了相应的加密及解密服务.这一过程 ...

  2. cmake 工具使用

    cmake_minimum_required(VERSION 3.5)#cmake版本 project( DisplayImage )#项目名称 find_package( OpenCV REQUIR ...

  3. 安装指定版本的Ionic或Cordova

    安装ionic 及 cordova npm install -g cordova ionic更新命令 npm update -g cordova ionic安装特定版本 npm install -g ...

  4. 在linux下通过ssh运行X图形软件

    服务器端:编辑/etc/ssh/sshd_config中的以下内容启用AllowTcpForwarding启用X11Forwarding将X11DisplayOffset设定为10. 启用X11Use ...

  5. jquery 复合事件 toggle()方法的使用

    定义和用法 toggle() 方法用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件. 语法: $(selector).toggle(function1(),function2 ...

  6. Android——NativeActivity - C/C++ Apk开发

    android基本的四大组件之一Activity,android开发的第一个hello world 创建的就是这个继承了Activity类的类,拥有对应的生命周期,由AMS维护,只需要重写父类对应的方 ...

  7. 四、SpringBoot出现报错:java.lang.NoSuchMethodError: org.springframework.http.MediaType.equalsTypeAndSubtype(Lorg/springframework/util/MimeType;)Z

    idea启动SpringBoot项目后,出现如下错误: 2019-11-19 15:24:44.344 ERROR 39168 --- [nio-8443-exec-1] o.a.c.c.C.[.[. ...

  8. Cortex-M3 SVC与PendSV

    [SVC] SVC(系统服务调用,亦简称系统调用)和PendSV(可悬起系统调用),它们多用在上了操作系统的软件开发中.SVC用于产生系统函数的调用请求.例如,操作系统通常不允许用户程序直接访问硬件, ...

  9. 找出所有从根节点到叶子节点路径和等于n的路径并输出

    //找出所有从根节点到叶子节点路径和等于n的路径并输出 Stack<Node> stack = new Stack<Node>(); public void findPath( ...

  10. Failed to start LSB: start and stop MariaDB

    Failed to start LSB: start and stop MariaDB */--> Failed to start LSB: start and stop MariaDB Tab ...