Ruby on Rails Tutorial 学习笔记 --第六章 用户模型

本文介绍如何在Rails应用中进行数据库迁移、创建模型及添加数据验证等操作,包括使用rake命令执行迁移、反迁移及创建具有唯一性约束的索引。

-3.新装gem后要重启服务器

-2.开发数据库:

[ruby]  view plain copy
  1. bundle exec rake db:migrate  

测试数据库:

[ruby]  view plain copy
  1. $ bundle exec rake db:test:prepare  


-1. 创建对象:rails console

0.

[ruby]  view plain copy
  1. $ bundle exec annotate --position before  

1.Active Record 提供了一系列的方法,直接用于创建、保存、查询数据对象,而无需使用关系数据库所用的结构化查询语言(structured query language, SQL)

2.生成用户模型

[ruby]  view plain copy
  1. rails generate model User name:string email:string  

3. 和控制器的命令习惯不同,模型的名字是单数:控制器是 Users,而模型是 User

4.timestamps 是个特殊的方法,它会自动创建两个列,created_at 和 updated_at,这两个列分别记录创建用户的时间戳和更新用户数据的时间戳。

5.用rake 命令来执行迁移

[ruby]  view plain copy
  1. $ bundle exec rake db:migrate  

反迁移

[ruby]  view plain copy
  1. $ bundle exec rake db:rollback  

6.模型注解

[ruby]  view plain copy
  1. $ bundle exec annotate --position before  

7.用户数据验证

[ruby]  view plain copy
  1. class User < ActiveRecord::Base  
  2.   attr_accessible :name:email  
  3.   
  4.   validates :name, presence: true, length: { maximum: 50 }  
  5.   VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i  
  6.   validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }  
  7. end  

在数据库层也加上唯一性限制

在数据库中为 email 列建立索引,然后为索引加上唯一性限制。

[ruby]  view plain copy
  1. $ rails generate migration add_index_to_users_email #<span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', 'Microsoft Yahei', STHeiti; font-size: 14.399999618530273px; line-height: 17.600000381469727px; background-color: rgba(255, 255, 255, 0.701961);">使用</span><code style="font-family: monospace, serif; font-size: 14.399999618530273px; color: rgb(34, 34, 34); line-height: 17.600000381469727px; background-color: rgba(255, 255, 255, 0.701961);">migration</code><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', 'Microsoft Yahei', STHeiti; font-size: 14.399999618530273px; line-height: 17.600000381469727px; background-color: rgba(255, 255, 255, 0.701961);"> 命令直接创建迁移文件</span>  
[ruby]  view plain copy
  1. 保 Email 唯一性的迁移文件  
  2. class AddIndexToUsersEmail < ActiveRecord::Migration  
  3.   def change  
  4.     add_index :users:email, unique: true  
  5.   end  
  6. end  
[ruby]  view plain copy
  1. 执行数据库迁移操作  
  2. $ bundle exec rake db:migrate  
代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生效的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生效,这样操作流程即告完成。如果设置仍然无法生效,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此时可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期版本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即时生效。此类问题的发生通常源于 CentOS 7 采用了不同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 提供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置时遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
代码转载自:https://pan.quark.cn/s/46fd08fb879c 网管教程 从入门到精通软件篇 ★一。★详尽的xp修复控制台指令及其应用!!! 放入xp(2000)的光盘,安装时选择R,执行修复! Windows XP(涵盖 Windows 2000)的控制台指令是在系统遭遇某些意外状况时的一种极具效用的诊断、检测以及恢复系统功能的工具。笔者确实一直期望能够将这方面的指令进行归纳,此次由老范辛苦整理了这份极具价值的秘籍。 Bootcfg bootcfg 命令用于启动配置与故障恢复(对大多数计算机而言,即 boot.ini 文件)。 带有特定参数的 bootcfg 命令仅在运用故障恢复控制台时方可使用。能够在命令行界面下运用带有不同参数的 bootcfg 命令。 用法: bootcfg /default 设定默认引导选项。 bootcfg /add 向引导清单中增添 Windows 安装。 bootcfg /rebuild 重复整个 Windows 安装流程并让用户选择需添加的项目。 注意:运用 bootcfg /rebuild 之前,应先借助 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 探查用于 Windows 安装的全部磁盘并展示结果。 注意:这些结果被静态存储,并用于当前会话。若在当前会话期间磁盘配置发生变动,为获取更新的探查结果,必须先重启计算机,然后再次探查磁盘。 bootcfg /list 列示引导清单中已有的项目。 bootcfg /disableredirect 在启动引导程序中禁用重定向。 bootcfg /redirect [ PortBaudRrate] |[ useBio...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值