W szyna 4, znaleźć z wielu warunków, na przykład rozważyć znalezienie Profile
z first_name
i last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
Znajduje pierwszy rekord pasujący określone warunki. Nie ma domniemanych porządków, więc jeśli porządek ma znaczenie, powinieneś to określić samodzielnie. Jeśli żaden rekord zostanie znaleziony, zwraca nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Ci się find_by, poza tym, że jeśli nie zostanie znaleziony rekord, zgłasza błąd ActiveRecord :: RecordNotFound.
Aby uzyskać więcej informacji przeczytaj Rails Finder Method
1: http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_byIn Rail 4, znaleźć z wielu warunków, na przykład rozważyć znalezienie Profile
z first_name
i last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
Znajduje pierwszy rekord pasujący określone warunki. Nie ma domniemanych porządków, więc jeśli porządek ma znaczenie, powinieneś to określić samodzielnie. Jeśli żaden rekord zostanie znaleziony, zwraca nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Ci się find_by, poza tym, że jeśli nie zostanie znaleziony rekord, zgłasza błąd ActiveRecord :: RecordNotFound.
Aby uzyskać więcej informacji przeczytaj Rails Finder Method
'.all' nie jest konieczne. – Mischa
@Mischa - Bardzo prawdziwe, ale to oczywiście zależy od tego, gdzie i jak używasz tego oświadczenia, a zgadzam się w większości przypadków, że nie jest to konieczne. Aby uzyskać tę odpowiedź, chciałem jawnie zwrócić wynikową tablicę, a nie obiekt ActiveRecord :: Relation, aby uniknąć ewentualnego zamieszania. Dzięki za wskazanie tego! – miked
Po prostu wydaje mi się dziwne, że nazywam "wszystko", gdy * nie * chcesz wszystkiego. Jeśli robisz to tylko po to, aby zwrócić tablicę zamiast "ActiveRecord :: Relation", to IMO będzie czystsze, aby zamiast tego wywołać 'to_a'. – Mischa