Tengo el siguiente código:rieles "find_all_by" vs ".donde"
def maturities
InfoItem.find_all_by_work_order(self.work_order).map(&:maturity)
end
estaba pensando en cambiarlo a:
def maturities
InfoItem.where(work_order: self.work_order).map(&:maturity)
end
Habría alguna ventaja para esto? Parece que .where
es más común que find_all_by
en la actualidad.
estoy en el proceso de actualización de una aplicación de Rails 4.0.3 a 4.1.0 y mi código que utiliza ' find_all_by' ya no funciona ('NoMethodError'). No veo nada en las notas de la versión que lo afecte. Tendré que cambiar a 'donde'. Si hubiera usado 'where' desde el principio, mi código habría sido menos propenso a dichos errores. Hay [un comentario más abajo] (http://stackoverflow.com/questions/11232971/rails-find-all-by-vs-where#comment14759921_11233522) mencionando que 'find_all_by_ *' quedaría obsoleto en Rails 4. Sin embargo, esto vino como una sorpresa para mí. ¿Dónde está documentada la eliminación de este método? – Dennis
Encontré dónde está documentado. En las notas de la versión 4.1: "Se eliminó activerecord-deprecated_finders como una dependencia. Consulte la gema README para obtener más información". – Dennis
También sugeriría usar 'pluck' en lugar de' map' en este tipo de situación. 'InfoItem.where (work_order: self.work_order) .pluck (: madurity)' – jurassic