`
wiisola
  • 浏览: 87421 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

#002_动态find_by方法

阅读更多
@tasks = Task.find(:all, :conditions => [ 'complete = ?', false ])
@task = Task.find(:first, :conditions => [ 'complete = ?', false ], :order => 'created_at DESC')

以动态的find_by和find_all_by方法缩短查询语句,以下代码等效。
@tasks = Task.find_all_by_complete(false)
@task = Task.find_by_complete(false, :order => 'created_at DESC')


另外
1.对于:conditons后面有2个参数的情况,下面的代码等效。
Task.find(:all, :conditions => [ 'complete = ? AND category_id = ?', false, 1 ])
Task.find_all_by_complete_and_category_id(false, 1)

2.动态查询支持nil, array以及range作为参数。看源代码有下面一段:
def attribute_condition(argument)   
  case argument   
    when nil   then "IS ?"  
    when Array then "IN (?)"  
    when Range then "BETWEEN ? AND ?"  
    else            "= ?"  
  end  
end 

于是,如果想要查询上海或者北京,18到30岁的用户,可以这么写
User.find_all_by_city_and_age([ 'Shanghai', 'Beijing' ], 18..30)

3.动态查询仍然可以使用:conditions参数,额外的条件会使用with_scope来约束。
Book.find_by_title('title', :conditions => ['price > ?', price]) 
分享到:
评论

相关推荐

    8192CU LINUX驱动

    #define CONFIG_FIND_BEST_CHANNEL 1 #endif #define CONFIG_SKB_COPY 1//for amsdu #define CONFIG_LED #ifdef CONFIG_LED #define CONFIG_SW_LED #ifdef CONFIG_SW_LED //#define CONFIG_LED_HANDLED_BY_CMD...

    Python selenium 父子、兄弟、相邻节点定位方式详解.pdf

    driver.find_element_by_id('parent_id').find_element_by_tag_name('child_tag') ``` 2. XPath父子关系寻找: ```python driver.find_element_by_xpath("//parent_tag[@id='parent_id']/child_tag") ``` 3. ...

    selenium自动化

    通过部分链接文本定位元素:`driver.find_element(By.PARTIAL_LINK_TEXT, "partial_link_text")`。 ##### 2.2.9 find_element_by_xpath() 通过 XPath 定位元素:`driver.find_element(By.XPATH, "xpath_expression...

    内存加载dll

    内存加载动态库 MemoryLoadLibrary 有例子。 /* * Memory DLL loading code * Version 0.0.3 * * Copyright (c) 2004-2013 by Joachim Bauch / mail@joachim-bauch.de * http://www.joachim-bauch.de * * ...

    Python爬虫信息输入及页面的切换方法

    实现网页的键盘输入操作 from selenium.webdriver.common...#find_element_by_class_name可以是find_element_by_link_text、find_element_by_id等其他方式 #send_keys一些特殊字符串,可以通过help(Keys)显示出来,如实

    selenium高级自动化(图文教程)-抢先版

    elements = driver.find_elements(By.CLASS_NAME, "example") for element in elements: element.click() driver.quit() ``` **2.8 定位一组元素find_elements** ##### 2.8.1 定位搜索结果 查找一组具有相同...

    find_pid_by_name.rar_LINUX pid

    `find_pid_by_name.c` 源代码则提供了一个更直接的方法,它通过遍历`/proc`目录下的所有子目录,检查每个进程的`cmdline`文件,来判断进程名是否与目标名称匹配。`cmdline`文件包含了启动进程时的命令行参数,通常第...

    hw_decode_linuxffmpeg_hw_decode_linuxffmpegmp4_vaapi硬件解码_源码

    intel graphics hd 630显卡已有硬件解码功能,linux平台下如何使用硬件解码呢?1.安装ffmpeg2.安装显卡驱动3.编译hw_decode.c #gcc -o hw_decode hw_decode.c -I/.../include -L/.../lib -lavformat -lavfilter -...

    python+selenium +Firefox 实现bilibili(B站)自动登陆

    login_button = driver.find_element_by_css_selector(".login-button button") login_button.click() # 可能需要验证码,这里可以集成打码平台API # 假设已经有了验证码识别的函数,调用它并填充验证码 # captcha_...

    Clustering by fast search and find of density peaks的matlab实现

    "Clustering by fast search and find of density peaks"是一种在数据挖掘和机器学习领域广泛应用的聚类算法,由Rodriguez和Laio在2014年提出。该算法旨在识别高密度区域并将其作为聚类中心,从而有效地处理非凸、非...

    1of-find-node-by-path.rar

    Linux3.x以后的版本才引入了设备... 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/dengjin20104042056/article/details/134435020

    webdriver中对于页面列表元素table,tr、td的智能读取

    使用 `find_element_by_tag_name()` 或 `find_elements_by_tag_name()` 方法来查找单个或多个 `table` 元素。例如: ```python from selenium import webdriver driver = webdriver.Chrome() driver.get(...

    tjh_quickfind_menus_Main.zip

    用过houdini 和 nuke 的小伙伴,肯定都使用过快速输入命令菜单,只要输入几个字符,即可显示相关的命令列表。 而maya中却没有此类工具插件。有时突然忘了命令的位置,想找就很麻烦。那么通过这个插件就可以快速查找...

    dp18_ap6330整理完工20170209_1129.7z

    r18_ap6330的步骤.txt 2017/2/9 10:47 开始整理 原始SDK默认配置为rtl8723bs,现在要修改为:AP6330。 硬件平台:全志R18。 开发板:DP-18 SDK:Android6.0.1/Linux3.10.65(v2.1版本,发布日期20161008) ...

    ffmpeg使用dxva2硬解码DEMO(vs2010)

    然后,通过`avcodec_find_decoder_by_name()`获取支持DXVA2的解码器,并在`avcodec_open2()`中传递适当的选项。 在播放视频时,你需要检查解码器是否支持硬件加速。可以通过`avctx->hwaccel`不为空来判断。如果支持...

    FindBy:FindBy帮助动态生成xPath和CSS选择器

    在IT行业中,尤其是在Web自动化测试领域,`@FindBy`是一个非常重要的概念,它是Selenium WebDriver的一种注解,用于帮助我们定位网页元素。Selenium是一个强大的开源工具,用于自动化浏览器操作,而`@FindBy`则是它...

    UI自动化定位常用实现方法代码示例

    driver.find_element_by_id() # id定位 driver.find_element_by_name() # name定位 driver.find_element_by_class_name() # class名称定位 driver.find_element_by_tag_name() # 标签定位 driver.find_element_...

    HOGP_GATT btsnoop 分析

    - **读取所有主服务 (Read by Group Type Request)**:本地设备发送Read by Group Type Request命令,以获取设备端所有主服务的列表。 - **读取包含服务 (Read by Type Request)**:读取每个主服务内所包含的服务。 ...

Global site tag (gtag.js) - Google Analytics