Active Record in Ruby on Rails is used for representing business data and logic in your application. Active Record makes it easier to interact with data stored in a persistence layer such as a database by providing options for taking action on the data without needed to write explicit SQL queries or utilize other database interaction mechanisms.
One of the tools in Active Record you will use often is finder methods. In this post, we’ll visit some common finder methods that Active Record make available and call out some other cool methods that are nice to have in your toolkit.
Let’s start with the most common ones:
User.find(23) # Find the user with id 23 User.find(23, 25) # Find the users with id 23, and 25 returned in an array
If there is no user for the id passed in, the ActiveRecord::RecordNotFound exception is raised.
User.find_by(name: 'Michael Jordan') # Find the user named Michael Jordan User.find_by(address: 'Bulls Way, Chicago') # Find the user with the Bulls Way address
Unlike find, find_by will not throw an exception if the record is not found, unless you add the !
User.find_by!(name: 'Michael Jordan') # Find the user or raise exception User.find_by!(address: 'Bulls Way, Chicago') # Find the user or raise exceptions
where to search on multiple attributes
User.where(name: 'Michael Jordan', address: 'Bulls Way, Chicago')
User.exists?(23) # Return true if a user with id 23 exists or false
first, last, fifth, third_to_last, etc.
User.first # Find the first user User.last # Find the last user User.fifth # Find the fifth user User.third_to_last # Find the user that is third before last
I hope you enjoyed exploring finder methods in Active Record. If you want more details, check out the Active Record finder methods Rails API documentation.