美文网首页Ruby
find 和 find_by

find 和 find_by

作者: Sarah_友妹 | 来源:发表于2017-10-07 12:48 被阅读5次

find


  • find(*args)
  • 仅按照栏位id查找符合匹配值的记录
  • 若没找到,返回 RecordNotFound
  • id可以是:
  1. 具体某一个id,比如find(1);返回查找到的对象
    Product.find(1) # returns the object for id = 1
  2. 同时查找多个id,比如find(1, 3);返回以一组数组形式呈现的查找到的对象
    Product.find(1,3) # returns an array for objects with ids in (1, 3)
  3. 如果key是integer,查找输入时若使用字串,find会自动用 to_i 方法把字串转成integer进行查找
    Product.find("1") # returns the object for id = 1
  4. 同时查找数组形式的某个id或多个id,比如find([1])、find([1,3,4])、;返回以一组数组形式呈现的查找到的对象
    Product.find([1]) # returns an array for the object with id = 1
    Product.find([1, 3, 4]) # returns an array for objects with ids in (1, 3, 4)
  5. 如果没找到,返回 RecordNotFound

find_by


  • find_by(arg, *args)
  • 查找并返回符合条件的第一条记录
  • 按照指定栏位的指定值查找匹配的第一条记录,而不必像find一样仅限制在id栏位进行查找
  • 若没找到,返回nil
  1. 按照某个栏位指定的值进行查找
    比如:Product.find_by(title: "product1")
    (1) 查找 栏位为title中值为"product1"的记录
    (2) returns the object for product.title = "product1"

  2. 按照多个栏位指定的值进行查找
    比如:Product.find_by(title: "product1", price: 500)
    (1) 查找 栏位title中值为"product1" 而且 栏位price中值为500 的记录
    (2) returns the object for product.title = "product1" && product.price = 500

  3. 如果没找到,返回nil

  4. 也可以写成 find_by_column(key),比如:
    Product.find_by_title("product1")
    Product.find_by_price(500)
    Product.find_by_id(1)

  5. 如果key是integer,查找输入时若使用字串,find_by会自动用 to_i 方法把字串转成integer进行查找,比如:
    Product.find_by_price("500")
    Product.find_by(price: "500")

相关文章

  • find 和 find_by

    find find(*args) 仅按照栏位id查找符合匹配值的记录 若没找到,返回 RecordNotFound...

  • 购物网 5.8作业

    找到 find_by 与 find 的区别 两者都是finder, 这解释一下find_by, Finds the...

  • 2018-09-05(rails 开发记录)

    为什么find不行而find_by可以 @order = Order.find(params[:id])/@ord...

  • RailsCasts

    1.caching with instance variables2.dynamic find_by method...

  • rails中find和find_by区别

    在rails中 find如果找不到数据,会抛出异常;而find_by则会返回nil。 所以如果需要利用返回值nil...

  • RailsCasts #002 dynamic find_by

    把RailsCasts中的视频讲的内容总结成文章,每个视频对应一片文章,希望可以帮助到那些想要学习RailsCas...

  • rails中find/find_by/where的区别

    find根据id进行查询,像Product.find(3),查询语句是Product Load (0.1ms) S...

  • 用户密码加密

    1、安装gem 使用的是rails内置的gem,不可逆的hash算法加密 2、验证的时候不能用find_by(na...

  • find和find_if

    find 用于查找第函数的第三个参数 find_if 用于查找自定义的相等关系 https://blog.csdn...

  • 查找空文件或目录

    空文件和空目录:find 路径 -empty 空文件:find 路径 -empty -type f空目录:find...

网友评论

    本文标题:find 和 find_by

    本文链接:https://www.haomeiwen.com/subject/ykfjyxtx.html