`

ruby condition

    博客分类:
  • ruby
 
阅读更多

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 programming

    - **条件表达式**:`if condition; then ... else ... end` - **循环语句**:`for i in 1..10 do ... end` ### Interactive Ruby (irb) irb 是一个交互式的Ruby Shell,非常适合快速测试代码片段。 - **启动irb**:...

    详解Ruby当中的算数运算

    Ruby还有一种三元运算符,也叫条件运算符,其语法为`condition ? expression1 : expression2`。如果条件为真,就执行`expression1`,否则执行`expression2`。 范围运算符在Ruby中用于创建序列,如`a..b`表示包含a和...

    Prorammer ruby 语法截图

    Ruby是一种面向对象、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。在《Prorammer Ruby》一书中,作者深入浅出地介绍了Ruby的基础和高级概念,帮助开发者掌握这一强大工具。以下是一些从书中...

    04Ruby 条件判断.docx

    ### Ruby条件判断知识点详解 #### 一、Ruby简介与特性 **Ruby** 是一种动态、面向对象的编程语言,以其简洁、易读的语法而著称。它被誉为“程序员最好的朋友”,这得益于其设计思想中的人性化理念,旨在让程序员...

    Ruby语言入门教程&代码示例.zip

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程将带你深入理解Ruby的基础知识,并通过代码示例帮助你快速上手。 一、Ruby语言基础 1. 变量:Ruby中的变量分为...

    Ruby on Rail 基础知识 一张纸

    ### Ruby on Rails基础知识详解 #### 一、简介 在IT领域,Ruby on Rails(简称RoR或Rails)是一种流行的Web应用程序开发框架,基于Ruby语言。它遵循MVC(模型-视图-控制器)架构模式,使得开发高效且结构化。本篇文章旨在...

    05Ruby 循环.docx

    code while condition ``` 或 ```ruby begin code end while conditional ``` 当`conditional`为真时,执行`code`。如果`while`修饰符跟在一个没有`rescue`或`ensure`子句的`begin`语句后面,`code`会在`...

    Ruby与JSON:无缝数据交换的秘诀

    ### Ruby与JSON:无缝数据交换的秘诀 #### Ruby概述 Ruby是一种高级的、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。该语言的设计目标是提供简单且自然的编程体验,同时...

    ruby基础学习资料

    - 三元运算符:`condition ? value_if_true : value_if_false`提供简短的条件判断。 3. **函数与方法**: Ruby中的函数称为方法,可以定义在类或模块中。方法定义以`def`开始,`end`结束。块(block)是Ruby中的...

    Ruby-Slim一种模板语言其目标是减少语法让主要部分没有成为神秘

    例如,`- if condition`和`- end`用于条件语句。 4. **缩进敏感**:Slim是缩进敏感的,这意味着元素的嵌套关系由缩进来决定,类似于Python。这种设计有助于保持代码的视觉一致性。 5. **辅助方法**:Slim提供了一...

    ruby 入门教程

    3. 三元运算符:`condition ? value_if_true : value_if_false`。 四、方法 Ruby的方法定义使用`def`关键字,结束用`end`。方法可以有参数,也可以接受默认值。例如: ```ruby def say_hello(name = "World") puts...

    Ruby多线程编程初步入门

    - **条件变量(Condition Variable)**:配合互斥锁使用,允许线程等待某个条件成立。 - **队列(Queue)**:实现线程间的非阻塞数据交换。 #### 六、异常处理 在多线程环境下处理异常尤为重要,因为未处理的异常...

    ruby,xml

    if condition ``` 5. **保存更改**:如果修改了XML文档,可以通过`to_xml`方法将其写回文件。 ```ruby File.write('modified.xml', doc.to_xml) ``` 6. **工具和库**:除了Nokogiri,还有其他的辅助工具和库,如`...

    Ruby课程:Ruby入门

    if condition # 如果条件为真,执行这里的代码 else # 如果条件为假,执行这里的代码 end ``` 在描述中提到的程序中,你可以这样实现询问用户颜色的功能: ```ruby puts "你喜欢什么颜色?" color = gets.chomp ...

    Ruby中的循环语句的用法教程

    ### Ruby中的循环语句详解 #### 一、引言 循环结构是编程语言中的核心概念之一,它使得程序能够重复执行某段代码直至满足特定条件。对于Ruby这门灵活且功能强大的编程语言而言,掌握其循环结构对于编写高效、可读性...

    详细解读Ruby当中的条件判断语句

    Ruby是一种面向对象的脚本语言,它提供了丰富的条件判断语句来实现程序的逻辑控制。在Ruby中,条件判断语句主要包括if...else、if 修辞符、unless、unless 修辞符以及case语句。这些语句使得开发者可以根据不同条件...

    Ruby:Ruby基本练习

    if condition # do something else # do something else end ``` 循环语句如: ```ruby for i in 1..10 puts i end ``` Ruby的面向对象特性是其核心之一。每个对象都有类(Class),类定义了对象的属性...

    ruby-course:Ruby简介

    if condition # 如果条件为真,执行这里的代码 else # 如果条件为假,执行这里的代码 end ``` 条件可以是任何返回布尔值(`true`或`false`)的表达式。例如,我们可以检查一个变量是否等于某个值: ```ruby ...

    Ruby 基础

    - **条件语句** 包括 `if`,`unless`,`case` 以及三元操作符 `condition ? result_if_true : result_if_false`。 - **循环** 包括 `for`,`while`,`until`,`times`,以及 `each` 等迭代器方法。 - **块** 通过...

Global site tag (gtag.js) - Google Analytics