Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – find_by_id(params [:subject_id])vs where where(:id => params [:subject_id]).first大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是铁杆新手.只是想知道哪个是更好的方法,如果找不到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,我必须建议第二种形式的向前兼容性.

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – find_by_id(params [:subject_id])vs where where(:id => params [:subject_id]).first全部内容,希望文章能够帮你解决ruby-on-rails – find_by_id(params [:subject_id])vs where where(:id => params [:subject_id]).first所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。