加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – find_by_id(params [:subject_id])vs where w

发布时间:2020-12-16 20:58:43 所属栏目:百科 来源:网络整理
导读:我是铁杆新手.只是想知道哪个是更好的方法,如果找不到subject_id,将返回nil: @subject = Subject.find_by_id(params[:subject_id]) 要么 @subject = Subject.where(:id = params[:subject_id]).first 谢谢. 解决方法 它们都生成相同的SQL语句: 1.9.3p194 :
我是铁杆新手.只是想知道哪个是更好的方法,如果找不到subject_id,将返回nil:
@subject = Subject.find_by_id(params[:subject_id])

要么

@subject = Subject.where(:id => params[:subject_id]).first

谢谢.

解决方法

它们都生成相同的SQL语句:
1.9.3p194 :003 > Example.find_by_id(9)
  Example Load (0.3ms)  SELECT "examples".* FROM "examples" WHERE "examples"."id" = 9 LIMIT 1
nil
1.9.3p194 :004 > Example.where(:id => 9).first
  Example Load (0.3ms)  SELECT "examples".* FROM "examples" WHERE "examples"."id" = 9 LIMIT 1
nil

因此,它们在数据库中具有相同的性能特征. find_by _ * _与where的Rails代码可能略有不同,但我认为与查询时间相比,这可以忽略不计.

编辑:鉴于Ryan Bigg’s comment below,我必须建议第二种形式的向前兼容性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读