Railsにはモデルからデータを取り出しさらにその中からデータを抽出するための便利なメソッドがいくつか標準で用意されています。
雛形
1 |
モデルオブジェクト等.絞り込み条件.実行部分 |
例
adminという名前のユーザーで絞り込み最初のレコードを取得する。
1 |
User.where(name:'admin').first |
モデルオブジェクト等
もちろんモデルオブジェクトをそのまま指定することも可能ですし「親オブジェクト.子オブジェクト」のようにhas_many等で関連づけたテーブルを指定することも可能です。
絞り込み条件
whereメソッド
SQLのwhere句です。重ねがけ可能でその場合はAND条件になります。
orderメソッド
SQLのorder by句です。
joinsメソッド
SQLのjoin句です。
groupメソッド
SQLのgroup by句です。
selectメソッド
SQLのselect句です。指定しない場合は全レコードを取得するようになっています。
limitメソッド
SQLのlimit句です。
distinctメソッド
SQLのdistinctです。重複を排除します。
allメソッド
実質何もしません。ただ全件取得することを明示したい場合に使います。
noneメソッド
何もヒットしない検索条件です。
実行部分
findメソッド
IDを指定してレコードを取得する。
find_byメソッド
条件を指定して見つかったレコードを返す。見つからなかった場合はnilを返します。
firstメソッド
最初のレコードを返します。
lastメソッド
最後のレコードを返します。
exists?メソッド
レコードの有無を返します。
countメソッド
レコード件数を返します。
averageメソッド
平均を取得します。SQLのAVG関数が使われます。
maximumメソッド
最大値を取得します。SQLのMAX関数が使われます。
minimumメソッド
最小値を取得します。SQLのMIN関数が使われます。
update_allメソッド
全レコードを全てインスタンス化せずに更新する。検証や更新系コールバックは呼ばれません。
delete_allメソッド
全レコードを全てインスタンス化せずに削除する。削除系コールバックは呼ばれません。
destroy_allメソッド
全レコードを全てインスタンス化して削除する。削除系コールバックは呼ばれます。
指定なし
検索結果の全レコードを取得します。
この記事へのコメントはありません。