find_by_x真的(温和地)被弃用了吗?

时间:2013-08-31 11:20:04

标签: ruby-on-rails activerecord ruby-on-rails-4

我见过人们重写代码 Model.find_by_x(x)Model.find_by(x: x)example),我想知道是否该做一些家务管理。

find_by...真的被弃用了吗? (一些证据/讨论会很好。) 这Rails commit暗示它是。此次提交更改的ActiveRecord::Base doc中也提到“被温和地弃用”。

提取的dynamic_finders gem声称它不是:“请注意,不推荐使用find(primary_key),find_by ...和find_by ... !.

同样在4.0 release notes中:“除了find_by _...和find_by _...!之外的所有动态方法都已弃用”。

1 个答案:

答案 0 :(得分:4)

我意识到这个答案缺乏证据/讨论,但我只是想说,Model.find_by_attribute之类的应该被弃用 - 即你应该对待它们并远离它们,即使它们没有被正式弃用。原因是这些方法必须通过method_missing来完成他们的魔法。所以它们没有使用find_by(x: y)那么快,在场景中,只使用ARel:where(x: y).take。这有帮助吗?