En Trenes 4, encontrará con varias condiciones, por ejemplo, considere la posibilidad de encontrar Profile
con first_name
y last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
encuentra el primer registro que coincida con las condiciones especificadas. No hay ordenamiento implícito, por lo que si el orden es importante, debe especificarlo usted mismo. Si no se encuentra ningún registro, devuelve nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Como find_by, excepto que si no se encuentra ningún registro activa un error ActiveRecord :: RecordNotFound.
Para obtener más información, lea Rails Finder Method
1: http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_byIn Carril 4, encontrará con varias condiciones, por ejemplo, considere encontrar Profile
con first_name
y last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
encuentra el primer registro que coincida con las condiciones especificadas. No hay ordenamiento implícito, por lo que si el orden es importante, debe especificarlo usted mismo. Si no se encuentra ningún registro, devuelve nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Como find_by, excepto que si no se encuentra ningún registro activa un error ActiveRecord :: RecordNotFound.
Para obtener más información, lea Rails Finder Method
'.all' no es necesario. – Mischa
@Mischa - Muy cierto, pero eso por supuesto dependerá de dónde y cómo uno esté usando la declaración, y estoy de acuerdo en la mayoría de los casos que no es necesario. Para esta respuesta, quería devolver explícitamente la matriz resultante y no un objeto ActiveRecord :: Relation para evitar cualquier posible confusión. ¡Gracias por señalar eso! – miked
Creo que parece extraño llamar 'all' cuando * no * quiere todo. Si solo lo está haciendo para devolver una matriz en lugar de una 'ActiveRecord :: Relation', sería IMO más claro que simplemente llamar a' to_a' en su lugar. – Mischa