For every field (also known as an attribute) you define in your table, Active Record provides a finder method.
- If you have a field called
first_nameon your Client model for example, you getfind_by_first_nameandfind_all_by_first_namefor free from Active Record. - If you have a
lockedfield on the Client model, you also getfind_by_lockedandfind_all_by_lockedmethods. - You can also use
find_last_by_*methods which will find the last record matching your argument. - You can specify an exclamation point (
!) on the end of the dynamic finders to get them to raise anActiveRecord::RecordNotFounderror if they do not return any records, likeClient.find_by_name!("Ryan")
If you want to find both by name and locked, you can chain these finders together by simply typing and between the fields. For example, Client.find_by_first_name_and_locked("Ryan", true).