プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】モデルのデータを絞り込む便利機能(scopeも)
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】モデルのデータを絞り込む便利機能(scopeも)

12.01

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

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メソッド

全レコードを全てインスタンス化して削除する。削除系コールバックは呼ばれます。

指定なし

検索結果の全レコードを取得します。

スポンサーリンク
  • 2019 12.01
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 12.23

    【Docker】Ruby on Railsのコンテナを作成して起動するまで。

  2. 2021 01.30

    【Ruby on Rails】「Enumrize」について

  3. 2018 06.19

    【Ruby on Rails】YAMLの基本と、データベースの接続設定をするには?

  4. 2019 12.01

    【Rspec】Capybaraの構文まとめ

  5. 2020 11.11

    【Ruby on Rails】「Capistrano」について

  6. 2020 11.22

    【Ruby on Rails】「画面パラメータの渡し方」の種類

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】モデル同士を関連づけを便…

【システム開発】テストコードを書くことの5つのメリット…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー