find vs find_by vs where
where returns ActiveRecord::Relation Now take a look at find_by implementation: def find_by where(*args).take end As you can see find_by is the same as where but it returns only one record. This method should be used for getting 1 record and where should be used for getting all records with some conditions.