¿Por qué find_by_attributes está en desuso de los rieles?

Según tengo entendido, el método #find_by_attributes es un método protegido llamado por métodos obsoletos #find_by_attribute_name . Ahora, esos fueron desaprobados y reemplazados por el método #find_by , que no implica #find_by (por lo tanto, es más rápido, menos peligroso y menos “mágico”).

¿Por qué peligroso? Mire el código del método (find_by_attributes (ActiveRecord :: FinderMethods) – APIdock) e imagine que alguien lo llama con una instancia de la clase #finder cuyo método #finder devuelve :delete_all .

Además, cualquier llamada legítima a #find_by_attributes puede ser reemplazada por Rails 4+ #where con un modificador opcional ( #first , #last ). El viejo método simplemente ya no es necesario.

Además, en la programación OO se supone que solo debe usar la interfaz de clase pública, por #find_by_attributes método #find_by_attributes nunca se debe usar directamente (está protegido). No se lo perderá.

Porque ahora el método dinámico que se genera depende de los atributos de su tabla.

Supongamos que los estudiantes de la tabla tienen atributos de identificación y nombre y luego se generan dos métodos dinámicos de la siguiente manera:

1: – find_by_id (id);

2.find_by_name (nombre)