ruby condition
class.new 新建
class.find 查询
class.destroy 删除
变量查询
a="hahaha"
Product.find(:all,:conditions=>["title like ?","%#{a}%"])
Product.find(:all,:conditions=>["title like :title",:title=>"%#{a}%"])
Product.find(:all,:conditions=>["title like :title and price>:price",:title=>"%#{a}%",:prcie=>3])
相当
SELECT * FROM "products" WHERE (title like '%a%' and price>3)
字符串查询
Product.find(:all,:conditions=>{:title=>"a"})
相当
SELECT * FROM "products" WHERE ("products"."title" = 'a')
多条件查询合并
>> cs = [{:title=>"a",:price=>(1..20),:description=>"hhhhh"}, "title like '%b%'"]
=> [{:price=>1..20, :title=>"a", :description=>"hhhhh"}, "title like '%b%'"]
>> Product.all :conditions=> Product.merge_conditions(*cs)
相当
SELECT
* FROM "products" WHERE (("products"."title" = 'a' AND
"products"."price" BETWEEN 1 AND 20 AND "products"."description" =
'hhhhh') AND (title like '%b%'))
把条件设置数组
>> conditions = [] #定义一个数组
=> []
>> conditions << ["title like ?", 'a'] #把一个条件加到数组
=> [["title like ?", "a"]]
>> conditions << ["title like ?", 'a'] if params[:title].present? #加一个判断 非空时加入到数组
include附加查询(减少N+1次查询)
LineItem.all :conditions => "products.title => 'a'", :include => :product
jions附加查询
LineItem.all :conditions => "products.title like '%a%'", :joins => :product
想当
SELECT
"line_items".* FROM "line_items" INNER JOIN "products" ON "products".id
= "line_items".product_id WHERE (products.title like '%a%')
select查询
Product.find(:all,:select=>"title,price")
相当
SELECT title,price FROM "products"
readonly只读查询
>> p=Product.first
=> #.....
>> p=Product.first(:readonly=>true)
=> #....
>> p.title="xxxxxxxxx"
=> "xxxxxxxxx"
>> p.save #抛出异常
from 指定表名
group 指定分组
limit 指定条数
offset 指定起始数
find_by_sql 直接执行sql语句
获取字段统计信息
Product.average(:price)
Product.maximum(:price)
Product.minimum(:price)
Product.sum(:price)
Product.count()
动态查询
Product.find_by_title_and_price("测试",78.9) #只查第一条first 结果:title和price
Product.find_all_by_title_and_price("测试",78.9) #返回数组 结果:title和price
Product.find_or_create_by_title("hahahaha") #查询并保存
Product.find_or_initialize_by_title("aoiokkok") #查询,如果没有初始化
查看日志
tail -f log/development.log
ruby condition的更多相关文章
- [ruby on rails] 深入(2) ruby基本语法
1. 调试&注释&打印输出 1.1 调试 ruby属于解释型语言,即脚本,在linux上,脚本的执行无非三种: 1. 用解释器运行脚本 解释器 脚本文件 即:ruby 脚本文件 2. ...
- ruby条件控制结构
一.比较语句 大部分和其他的语言一样,这里注意<=>. 条件语句 如下几种形式 if if ..else.. end if..elsif..else..end unless(if not) ...
- 《ruby编程语言》笔记2 对象
ruby是一门非常纯粹的面向对象的语言:所有值都是对象,而且没有基本类型(primitive type)和对象类型的区别,这一点不同于其他语言.在Ruby中,所有对象都继承一个Object类,而且共享 ...
- Ruby安装和简介
Ruby下载地址:https://www.ruby-lang.org/zh_cn/downloads/ 我安装的是RubyInstaller.it is a self-contained Window ...
- Ruby自学笔记(二)— Ruby的一些基础知识
Ruby安装好之后,我们就可以来实践Ruby语言了. 以下是一些学习到的简单基础知识: 1. 如何执行Ruby文件? 我们编写的Ruby文件是以rb为后缀名的,例如:XXX.rb.当要执行ruby文件 ...
- 从ruby实现时间服务器ntp同步功能也谈“逆向工程”
本猫以前写asm和C的时候常常不忘"逆向"一把,后来写驱动的时候也用VM之类的搭建"双机"调试环境进行调试:也对于一些小的软件crack cd-key神马的不亦 ...
- Java转Ruby【快速入门】
最近参加实习了,公司的技术栈中需要用到 Ruby 以及 Rails 框架,所以算是开始了踩坑之旅吧.. Ruby 简介 网上的简介要搜都能搜到,具体涉及的包括历史啦之类这里不再赘述,提几个关键词吧: ...
- ruby学习--条件控制
条件控制 本人喜欢用程序demo记录的方式来记录某方法的使用,如times方法,仅作个人学习记录 #--------------if语句(相反是unless)而while相同于until------- ...
- 【Ruby】【基础】
# [Ruby 块]=begin1 块由大量代码构成2 块中代码包含在{}内3 从与其相同名称的函数调用4 可以使用yield语句调用块=enddef test p '在test方法内' yield ...
随机推荐
- Part 4 using entity framework
Step1: Install entity framework using nuget package manager. Step2: Add a class file to the Models f ...
- ubuntu安装python3
系统本身就已经安装了python2.7 和python3.4 现在需要做的就是将默认的版本更换一下下就可以了. 检查python的版本 python -V 老的版本没必要去产出了,因为会有一些程序依赖 ...
- cocos2d-x一些核心概念截杀
Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导演, 场景,层,节点,精灵,菜单动作 ...
- 2015-0306—DataLList
DataList具有repeater的所有功能,不同的是DataList自动将模板绘制成为一个表格,每一行数据都绘制成<tr>. 一.SQL的准备工作: 按照以下代码创建: create ...
- js模版引擎Mustache介绍
Mustache通常被称为JavaScript模板的基础.另一个流行的解决方案Hanldebars实际上就是基于Mustache构建而成的.这并不意味着Mustache是一个不好的模板解决方案. 下面 ...
- HDU 1954 Subway tree systems (树的最小表示法)
题意:用一个字符串表示树,0代表向下走,1代表往回走,求两棵树是否同构. 分析:同构的树经过最小表示会转化成两个相等的串. 方法:递归寻找每一棵子树,将根节点相同的子树的字符串按字典序排列,递归回去即 ...
- Xcode中为代码添加特殊标记
有时候,我们需要在代码中搜索特殊的符号或者代码段,根据符号或使用搜索功能导航代码段效率并不算高.为了使用普通的英语标识重要的代码片段,可在代码中插入特殊格式的注释.这些注释不会在应用程序中添加任何特殊 ...
- 33选6算法:M个数N个为一组,无重复的排列组合
private void button1_Click(object sender, EventArgs e) { int nCnt = 0; List nNumList = new List(); f ...
- Powerdesigner15 创建数据库生成脚本
Ctrl + Shift + X,打开脚本编辑界面,使用VBScript编写脚本 点击帮助按钮,可以打开OLE Help,“Libraries >> PdPDM”中可以查看内置的类库.“A ...
- 看部电影,透透彻彻理解IoC(你没有理由再迷惑!)
引述:IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP.声明式事务等功能在此基础上开花结果.但是IoC这个重要的概念却比较晦涩隐讳,不容易让人望文生义,这不能不 ...