我見過人們從 Model.find_by_x(x)
重寫他們的代碼 Model.find_by(x: x)
(example),我想知道,如果它的時間做一些家政服務。find_by_x確實(輕度)不推薦使用?
是否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 _...!以外的所有動態方法都被棄用」。
感謝@pdobb,它的確如此。我遵循你的推理。這是一層開銷,對可讀性沒有任何好處,所以離開是有道理的。 –
我對這些發現者的性能方面很感興趣,並且在 之下做了一個快速的基準測試'Benchmark.bm(10)do | x |' 'x.report(「find_by」){ 1000.times {Model.find_by(my_field: 「值」)}}'' x.report( 「find_by_attr」){1000.times {Model.find_by_my_field( 「值」)}}'' end' ' 'user system total real' 'find_by 0.610000 0.250000 0.860000(1.276131)' 'find_by_attr 0.560000 0.040000 0.600000(1.032426)' 對不起格式化! –