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