Seeding the Database:

db/seed.rb 可以提供预设data

rake db:seed

#seeds.rb 

Person.create! [
{first_name : "kalman", last_name: "Smith", age:33 },
{first_name : "John", last_name: "Whatever", age: 27},
{first_name: "Michael", last_name: "Smitch" ,age: 15}
] rake db:seed #=> 将上面数据写入数据库

rails db

.headers on

.mode columns

显示数据库内容

Including SQL fragments:

Person.where("age BETWEEN 30 and 33").to_a
#=> 选出年龄在30与33之间的人转化成array输出 Person.find_by("first_name LIKE '%man'")
#=> 选出名中带有man的人

SQL injection:

*操作原始SQL以侵入数据库
*这包括恶意删除表或获取机密信息

Array and Hash Condition Synatx:

Array Syntax:

允许使用 ? 后跟值(参数)指定SQL片段
自动对输入值执行转换并转义SQL中的字符串
不受SQL影响
类似于Java中的PraveReDebug语句

Person.where("age BETWEEN ? AND ?". 28 ,34 ).to_a

Person.where("first_name LIKE ? OR last_name LIKE ?", '%J%','%J%').to_a

Array Syntax 有两个小问题:

1. 必须追踪? 在其后面给予数值

2.多有少个? 就必须赋多少值

Hash Condition Syntax:

Person.where("age BETWEEN :min_age AND :max_age", min_age:28, max_age:32).to_a 

Person.where("first_name LIKE :pattern OR last_name LIKE :pattern", pattern: '%J%').to_a

RoR - Advanced Querying的更多相关文章

  1. Stackoverflow/dapper的Dapper-Extensions用法(一)

    Dapper-Extensions Dapper Extensions is a small library that complements Dapper by adding basic CRUD ...

  2. dapper的Dapper-Extensions用法(一)

    dapper的Dapper-Extensions用法(一) Dapper-Extensions Dapper Extensions is a small library that complement ...

  3. JSON in SQL Server 2016

    JSON functions in SQL Server enable you to analyze and query JSON data, transform JSON to relational ...

  4. webpy使用mysql数据库操作(web.database)

    webpy_web.database模块 webpy框架中使用mysql管理数据库有两种方法,一种是使用python里面的MySQLdb模块: import MySQLdb 还有一种就是用webpy自 ...

  5. 获取文件的缩略图Thumbnail和通过 AQS - Advanced Query Syntax 搜索本地文件

    演示如何获取文件的缩略图 FileSystem/ThumbnailAccess.xaml <Page x:Class="XamlDemo.FileSystem.ThumbnailAcc ...

  6. ARM概论(Advanced RISC Machines)

    简介 ARM7是32 位通用微处理器ARM(Advanced RISC Machines)家族中的一员,具有比较低的电源消耗和良好的性价比, 基于(精简指令)RISC结构,指令集和相关的译码机制与微程 ...

  7. The World's Only Advanced Operating System

    The World's Only Advanced Operating System

  8. Advanced Office Password Recovery如何设置快捷方式

    一般软件安装成功之后都会在桌面上形成快捷方式以方便使用,但是一些用户发现Advanced Office Password Recovery这种office密码破解工具安装成功后桌面上没有出现快捷方式, ...

  9. Advanced Office Password Recovery安装后显示是英文版的

    一些才开始接触Advanced Office Password Recovery(即AOPR)的朋友,在安装Advanced Office Password Recovery的时候可能发现Advanc ...

随机推荐

  1. 理解Java注解类型

    一. 理解Java注解 注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类.而我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象$Proxy ...

  2. Android 隐藏系统状态栏

    通常的做法是这样的: private static boolean isStatusbarVisible(Activity activity) { int uiOptions = activity.g ...

  3. 浅谈 CSS 预处理器: 为什么要使用预处理器?

    CSS 自诞生以来,基本语法和核心机制一直没有本质上的变化,它的发展几乎全是表现力层面上的提升.最开始 CSS 在网页中的作用只是辅助性的装饰,轻便易学是最大的需求:然而如今网站的复杂度已经不可同日而 ...

  4. IIS7设置将域名不带www跳转到带www上

    很多朋友在IIS环境中搭建好网站后,习惯性将带www和不带www的域名都绑定到一个网站上,这样做虽然两个域名都能访问,但容易造成权重分散,从而导致网站权重降低.其实我们可以将访问不带www的域名自动跳 ...

  5. [svc]linux紧急情况处理

    如何判断 Linux 服务器是否被入侵? w-last-history top-lsof-strace netstat CPU利用率很高 800%爆了 netstat find 文件 查/etc/rc ...

  6. 物联网架构成长之路(30)-Spring Boot Admin微服务WebUI监控

    0. 前言 一个完整的微服务解决方案包含了许多微服务,基于我们需要观察各个微服务的运行状态,因此Spring Boot 生态提供了Spring Boot Admin 这个组件来实现微服务管理WEB U ...

  7. Linux shell去除字符串中所有空格

    Linux shell去除字符串中所有空格 echo $VAR | sed 's/ //g'

  8. Windows下pip安装及更新出现“UnicodeEncodeError: 'ascii' codec can't encode character u'\u258c' in position 8: ordinal not in range(128)”问题解决办法

    Windows下pip安装及更新出现“UnicodeEncodeError: 'ascii' codec can't encode character u'\u258c' in position 8: ...

  9. 【规范】前端编码规范——html 规范

    文档类型 推荐使用 html5 的文档类型申明: <!DOCTYPE html> 语言属性 根据 html5 规范: 强烈建议为 html 根元素指定 lang 属性,从而为文档设置正确的 ...

  10. 当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。

      以下介绍的三种方法属于Object: (1)  finalize方法:当一个对象被垃圾回收的时候调用的方法. (2)  toString():是利用字符串来表示对象. 当我们直接打印定义的对象的时 ...