Rubyのincludeとは

こんにちは

今日はincludeメソッドについてです。

rubyにはinclude?メソッドやincludesメソッドもありますが、意味は異なります。

 

【include?()】

配列に引数で指定した要素が == で等しい要素を持つ時に真を返します。

 

【includes】

N+1問題を解消する為のメソッド。引数に指定された関連モデルを1度のアクセスでまとめて取得できます。書き方→includes(:紐付くモデル名)

*N+1問題とは、アソシエーションを利用した場合に限り、データベースへのアクセス回数が多くなってしまう問題。アプリケーションのパフォーマンス低下につながります。

【include】

moduleをクラスに含めるメソッド。moduleAをclassBにincludeすると、moduleAに含まれているメソッドをclassBのインスタンスが使えるようになります。

 

フォームオブジェクトパターンを使う時に【include】を使いました。一つのフォームから複数テーブルに保存する時ですね。

 

今回は以上となります。