
高度なActiveRecordクエリ
Query interface、where、joins、includes、eager loading、N+1問題、transactions、locking(optimistic/pessimistic)
28 面接問題·
Mid-Level
1主キーでレコードを取得し、見つからない場合に例外を発生させるActiveRecordのメソッドはどれですか?
1
主キーでレコードを取得し、見つからない場合に例外を発生させるActiveRecordのメソッドはどれですか?
回答
findメソッドは主キーでレコードを取得し、レコードが存在しない場合はActiveRecord::RecordNotFound例外を発生させます。これにより、nil値のまま処理を続行するのではなく、コードが明示的に失敗することが保証されます。例外を回避してnilを返したい場合は、find_by(id: value)を使用します。
2ActiveRecordにおけるfind_byとwhere.firstの主な違いは何ですか?
2
ActiveRecordにおけるfind_byとwhere.firstの主な違いは何ですか?
回答
find_byは単一のレコードまたはnilを直接返しますが、where.firstはActiveRecordのリレーションを返してからfirstを呼び出して最初の結果を取得します。実際には、find_byはLIMIT 1で最適化されたクエリを生成しますが、whereは最初の要素を選択する前により多くのデータを読み込む可能性があります。
3ActiveRecordのwhereメソッドに複数の条件を渡すにはどうすればよいですか?
3
ActiveRecordのwhereメソッドに複数の条件を渡すにはどうすればよいですか?
回答
whereメソッドは複数のキーを持つハッシュを受け取り、ANDで結合される複数の条件を指定できます。例えば、User.where(status: 'active', role: 'admin')はWHERE status = 'active' AND role = 'admin'を生成します。OR条件には、orまたは生のSQLクエリを使用します。
4
ActiveRecordにおけるN+1問題とは何ですか?
5
関連を事前読み込みしてN+1問題を解決するにはどのメソッドを使用しますか?
+25 面接問題
その他のRuby on Rails面接トピック
Rubyの基礎
Junior
25問Rubyのオブジェクト指向プログラミング
Junior
20問Rails の基礎
Junior
18問Routing & Controllers
Junior
22問ActiveRecord の基礎
Junior
25問Views と ERB テンプレート
Junior
20問ActiveRecord の関連付け
Mid-Level
24問Rails フォーム
Mid-Level
20問認証と認可
Mid-Level
22問モダンな Asset Pipeline とフロントエンド
Mid-Level
18問Rails APIモード
Mid-Level
20問RSpecによるテスト
Mid-Level
24問ActiveJob & Background Jobs
Mid-Level
20問ActionCable & WebSockets
Mid-Level
18問ActionMailer
Mid-Level
18問ActiveStorage
Mid-Level
20問キャッシュ戦略
Mid-Level
20問高度なマイグレーション
Mid-Level
20問Rails Engines とモジュラーアプリ
Senior
18問パフォーマンス最適化
Senior
26問Rails のデザインパターン
Senior
22問Rubyのメタプログラミング
Senior
20問Rails のセキュリティ
Senior
22問Rails での GraphQL
Senior
20問デプロイと本番環境
Senior
20問Monitoring & Logging
Senior
20問Rails アップグレード戦略
Senior
18問