Railsにてモデルをカラムで検索するには、whereメソッドかfind_by_columメソッドを使います。
whereの使い方
whereメソッドは、検索結果を全件返します。
リファレンス:検索条件を指定して取得(where)
モデル.where (検索条件)
Authorモデルのnameカラムが"tom"のレコードを取得する方法には、次の二通りがあります。どちらも結果は同じです。
# 文字列で指定
r = Author.where("name = 'tom'")
# ハッシュで指定 r = Author.where(name: "tom")
戻り値は、ActiveRecord_Relation配列で得られます。
r.class => Author::ActiveRecord_Relation
1件目のデータを参照するにはr[0]でアクセスします。
r[0].class => Author
find_by_columの使い方
find_by_columメソッドは、初めの1件だけ返してくれます。
リファレンス:カラム名を指定して最初の1件を取得(find_by_colum)
モデル.find_by_カラム名 (検索する値)
Authorモデルのnameカラムが"tom"のレコードを取得して変数rに格納するには次のようにします。
r = Author.find_by_name "tom"
戻り値は、Authorクラスです。
r.class => Author