In rotaia 4, trovare con più condizioni per esempio si consideri trovare Profile
con first_name
e last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
trova il primo record corrispondente alle condizioni specificate. Non vi è alcun ordine implicito, quindi se l'ordine è importante, devi specificarlo tu stesso. Se non viene trovata alcuna traccia, restituisce nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Come find_by, tranne che se non viene trovata alcuna registrazione, genera un errore ActiveRecord :: RecordNotFound.
Per ulteriori informazioni leggere Rails Finder Method
1: http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_byIn rotaia 4, trovare con più condizioni, ad esempio in considerazione trovare Profile
con first_name
e last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
trova il primo record corrispondente alle condizioni specificate. Non vi è alcun ordine implicito, quindi se l'ordine è importante, devi specificarlo tu stesso. Se non viene trovata alcuna traccia, restituisce nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Come find_by, tranne che se non viene trovata alcuna registrazione, genera un errore ActiveRecord :: RecordNotFound.
Per ulteriori informazioni leggere Rails Finder Method
'.all' non è necessario. – Mischa
@Mischa - Molto vero, ma ciò dipenderebbe naturalmente da dove e come si sta usando l'affermazione, e sono d'accordo nella maggior parte dei casi non è necessario. Per questa risposta, ho voluto restituire esplicitamente l'array risultante e non un oggetto ActiveRecord :: Relation per evitare ogni possibile confusione. Grazie per averlo fatto notare! – miked
Penso solo che sembra strano chiamare 'all' quando * non * vuole tutto. Se lo fai solo per restituire un array invece di un 'ActiveRecord :: Relation', sarebbe più chiaro chiamare semplicemente to_a'. – Mischa