Railsチュートリアルの第6章、オブジェクトの検索と更新について勉強しました。
Active Recordには、オブジェクトを検索するための方法がいくつもあります。これらの機能を使用して、過去に作成した最初のユーザーを探してみましょう。また、3番目のユーザー (foo) が削除されていることを確認しましょう。まずは存在するユーザーから探してみましょう。
User.find(1)
ここでは、User.findにユーザーのidを渡しています。その結果、Active Recordはそのidのユーザーを返します。
存在しないIDを指定すると次のようにエラーメッセージが表示されます。
一般的なfindメソッド以外に、Active Recordには特定の属性でユーザーを検索する方法もあります。
User.find_by_email("mhartl@example.com")
find_by_emailは、usersテーブルのemail属性に基づいてActive Recordが自動的に生成するメソッドです。Rails 4.0以降では、属性を検索する場合には上のメソッドに代えてより普遍性の高いfind_byメソッドを使用することが推奨されています。このメソッドでは属性をハッシュ形式で渡します。
User.find_by(email: "mhartl@example.com")
find関連メソッドは、ユーザーをサイトにログインさせる方法を学ぶときに役に立ちます。オブジェクトの検索には他にもfirstメソッドやallメソッドも用意されています。
firstは単にデータベースの最初のユーザーを返します。
User.first
allはデータベースのすべてのユーザーの配列を返します。
User.all