我见过人们重写代码
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 _...!之外的所有动态方法都已弃用”。
答案 0 :(得分:4)
我意识到这个答案缺乏证据/讨论,但我只是想说,Model.find_by_attribute
之类的应该被弃用 - 即你应该对待它们并远离它们,即使它们没有被正式弃用。原因是这些方法必须通过method_missing来完成他们的魔法。所以它们没有使用find_by(x: y)
那么快,在场景中,只使用ARel:where(x: y).take
。这有帮助吗?