[解決済み] Railsのpluckとcollectの違いは何ですか?
2022-06-29 22:37:56
質問
サンプルコードを2つ紹介します。
最初のものは
collect
:
User.first.gifts.collect(&:id)
2つ目の
pluck
:
User.first.gifts.pluck(:id)
両者にパフォーマンスなどの違いはあるのでしょうか?
どのように解決するのですか?
pluck
はdbレベルです。これは特定のフィールドにのみクエリを実行します。
を参照してください。
.
するとき。
User.first.gifts.collect(&:id)
すべてのフィールドが読み込まれたオブジェクトがあり、単に
id
はEnumerableに基づくメソッドのおかげで、単純に取得できます。
というわけで。
-
もし だけ が必要です。
id
が必要な場合、Rails 4 ではids
:User.first.gifts.ids
-
もし だけ が必要な場合、Rails 4で
pluck
:User.first.gifts.pluck(:id, :name, ...)
-
もし だけ が必要な場合、Rails 3では
pluck
:User.first.gifts.pluck(:id)
-
必要なら 全て フィールドが必要な場合は
collect
-
Rails 4でいくつかのフィールドが必要な場合、やはり
pluck
-
Rails 3でいくつかのフィールドが必要な場合は
select
とcollect
関連
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
-
[解決済み] Rubyのincludeとrequireの違いは何ですか?
-
[解決済み] Rubyのmapとcollectの違い?
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み] RailsのERBにおける<%、<%=、<%#、-%>の違いは何ですか?
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】railsの文字列とtextの違い?
-
[解決済み】activerecordのレコードを複製する最も簡単な方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み】gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] rails/rubyでgroup_byを使用する。
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".